繁体   English   中英

django随机播种

[英]Seeding random in django

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

如果有的话,很少调用random.seed()

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

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

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

不要设置种子。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM