改变种子每次产生的随机数(Change seed for every generated rando

2019-10-19 21:15发布

假设你使用生成种子为自1970年1月在秒钟以后在微软库时的随机数。 但是你生成每一个随机数后更改种子。 将,让一个真正的随机结果。 为什么或者为什么不?

编辑我只是有一个多部分的问题。 如果我得到的种子是不确定性。 对于一个小例子,取该种子是由已经存在的TRNG(真随机数生成器)生成。 换句话说,如果我可以让种子不确定性不知何故,我就能生成即非随机序列 - 确定性序列。 为什么或者为什么不?

Answer 1:

从本质上讲,你的技术简单地将这个“随机性”当你调用随机()函数:如果您致电确定性倍的功能(例如每秒一次),结果将是确定性的。 如果你打电话给在随机时间的函数,其结果将是随机的。

更准确地说,它取决于什么样的价值,你所说的种子()与功能。 如果调用具有确定性值的种子(),后续调用随机()的结果将是确定性的。

更新(通过请求):

软件随机生成器是完全确定的; 它产生的值的序列被精确地通过传递什么到初始呼叫种子()确定。 其结果是,如果你调用的种子()与已知值,那么你就可以准确预测什么系列的值,你会从后续调用到随机的()。 如果调用真正的随机数种子(),然后调用随机()将相应随机的。

(但是,这引出了一个问题:如果你有随机数传递给种子(),为什么还要调用随机()呢?)



Answer 2:

真正的随机性不需要种子。 播种只适用于的PRNG,这是100%确定的,而不是真正随机的。

因此,没有以任何形式使用PRNG不会产生真正的随机性。



文章来源: Change seed for every generated random number
标签: random