每次调用random()方法时需要改变随机种子吗?
或者应该生成一个随机种子并且在重新启动我的程序之前不要更改?
哪个选择可以获得更好的随机数?
关于我的计划
我正在使用 Node.js
开发扑克牌程序。我需要用 Math.random()
洗牌。
由于原始的Math.random()
方法不够安全,所以我使用seedrandom包重写了它。
我可以为 seedrandom
提供一个随机种子。但是我不知道什么时候更改或需要我在程序运行时更改随机种子。
最佳答案
在开发时使用恒定的随机种子很有用 - 它允许您有恒定的行为,这意味着每次运行程序时都会出现您遇到的错误。
测试时 - 您可以生成随机种子作为参数,如果程序崩溃则重新创建错误。
在现实世界的应用程序中,您不能拥有恒定的随机种子,因为它会使整个程序恒定。在您的扑克游戏中,发出的牌总是相同的,您可以理解这可能是个问题。
至于在每次 random() 调用之前生成一个新的种子,伪随机生成器用于创建尽可能真实的随机变量,真正的随机意味着一旦你得到一系列的,你就无法预测下一个数字以前的数字。所以每次都改变种子没有任何意义。
关于algorithm - 调用 random() 方法时需要更改随机种子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42503884/