在 django 的视图中,我使用random.random()
. 我需要多久打一次电话random.seed()
?每个请求一次?每个季节一次?网络服务器运行时有一次?
问问题
2234 次
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 回答