【发布时间】:2014-03-02 15:00:34
【问题描述】:
我想问一下,伪随机数发生器中的memento到底是怎么用的?我对伪随机数生成器有很高的了解,但我没有看到任何纪念品(即使我读过它也在那里)。非常感谢您的回答:)
【问题讨论】:
标签: design-patterns random memento
我想问一下,伪随机数发生器中的memento到底是怎么用的?我对伪随机数生成器有很高的了解,但我没有看到任何纪念品(即使我读过它也在那里)。非常感谢您的回答:)
【问题讨论】:
标签: design-patterns random memento
我相信你在谈论设计模式纪念品。如果是这样,那么我认为 memento 被用作随机数生成器的内部状态。首先,您创建具有特定种子(即其状态)的随机数生成器,然后在下一次随机数生成期间使用此种子。所以使用标准的纪念品术语:
C++ 中的标准 rand() 不支持检索其状态,因此唯一的恢复操作只是在开始时存储您通过 srand() 设置的种子,然后使用它将生成器恢复到初始状态。
但是,您可以重新实现它,使其支持状态查询,然后恢复到任何状态,而不仅仅是初始状态。有关如何实现这一点的方法,请参阅this SO answer。在同一线程中还提到,新的 c++11 随机数生成器默认提供此功能。
【讨论】: