django随机播种

时间:2009-07-20 23:26:16

标签: python django random django-views

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

3 个答案:

答案 0 :(得分:3)

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

要随机,您必须允许随机数生成器在不触及种子的情况下运行。数字序列是随机的。如果更改种子,则启动新序列。种子值可能不是非常随机,导致问题。

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

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

答案 1 :(得分:3)

不要设置种子。

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

答案 2 :(得分:0)

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

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