我正在尝试使用Python开发程序来预测伪随机数生成器的结果。我已经有一个程序使用来获取先前生成的数字的种子seed = random.getstate()
。我的问题是是否有任何方法可以计算将要使用的下一个种子,因此我可以预测下一个数字。
伪随机数生成器之所以如此命名,是因为它们是确定性的。它们会生成一个似乎是随机的数字序列,但实际上并非如此。如果使用相同的种子启动PRNG,则每次都会获得相同的序列。
我已经有一个程序可以使用以下命令获取先前生成的数字的种子
seed = random.getstate()
您在这里并不是真正的种子,而是PRNG的内部状态。您可以保存该状态并在以后再次设置。这可能对测试很有用,或者只是继续相同的顺序。
现在,我的问题是是否仍然有计算要使用的下一个种子的方法,因此我可以预测数量。
再次强调一下,实际上不是seed,它是启动PRNG序列时提供的初始值。您得到的是PRNG的内部状态。但是,是的,如果您具有该状态,则预测下一个数字很简单:只需random.setstate(...)
使用您获得的状态进行调用,生成下一个数字,然后random.setstate(...)
再次调用以将PRNG放回相同的状态,以便再次生成相同的数字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句