4

在 django 的视图中,我使用random.random(). 我需要多久打一次电话random.seed()?每个请求一次?每个季节一次?网络服务器运行时有一次?

4

3 回答 3

4

不要种​​下种子。

您唯一想要设置种子的时间是如果您想确保相同的事件继续发生。例如,如果您不想让玩家在游戏中作弊,您可以保存种子,然后在他们加载游戏时设置它。然后无论他们保存+重新加载多少次,它仍然给出相同的结果。

于 2009-07-21T07:32:08.247 回答
3

random.seed()如果有的话,很少打电话。

要随机,您必须允许随机数生成器在不接触种子的情况下运行。数字序列是随机的。如果你改变种子,你就会开始一个新的序列。种子值可能不是很随机,会导致问题。

根据您需要的数量,您可以考虑/dev/random定期重置种子。

您应该在用完前一个种子之前尝试重置种子。您没有获得完整的 32 位随机性,因此您可能希望在生成 2**28 个数字后重置种子。

于 2009-07-20T23:34:30.263 回答
0

这实际上取决于您需要随机数的目的。使用一些实验来确定它是否有任何不同。您还应该考虑到伪随机数实际上存在一种模式。如果有人能猜出下一个随机数,对你有影响吗?如果没有,请在会话开始或服务器首次启动时播种一次。

IMO,在会议开始时播种一次可能最有意义。这样,用户将在整个会话期间获得一组伪随机数。如果您在每次提供页面时播种,则无法保证这一点。

于 2009-07-20T23:33:25.180 回答