播种在Django随机
-
18-09-2019 - |
题
在在Django视图我使用random.random()
。多久我必须叫random.seed()
?
有一次为每个请求?
一周时间,每个季节?
一周时间,而网络服务器运行?
解决方案
呼叫random.seed()
很少,如果在所有
要是随机的,则必须允许随机数发生器,以不接触种子运行。数字的顺序是什么是随机的。如果你改变了种子,你开始一个新的序列。种子值可能不是很随机的,导致的问题。
根据您需要多少个号码,你可以考虑从/dev/random
定期重置种子。
您应该尝试重置你已经使用了以前的种子之前的种子。你没有得到随机的完整的32位,所以你可能要产生2 ** 28号后的种子复位。
其他提示
不要设置种子。
要设置种子的唯一情况是,如果你想确保相同的事件不断发生。例如,如果你不想让玩家在游戏中可以保存种子,然后把它当他们加载其游戏作弊。那么无论他们有多少次救+重装,但它仍然给出了同样的结果。
这真的取决于你所需要的随机数。使用一些试验,以找出是否这有什么差别。你也应该考虑,实际上是那里的伪随机数的模式。是否有所作为给你,如果有人能猜到可能下一个随机数?如果不是,在会话开始时一旦种子它或当服务器第一次启动时。
在会议上很可能最有意义,IMO开始播种一次。通过这种方式,用户将得到一组伪随机数的整个会话。如果种子每一个网页放送时,他们不能保证这一点。
不隶属于 StackOverflow