不清楚伪随机数的seed 和函数公式,仅仅知道大量的数字序列和取值规则,有办法逆推伪随机数的种子从而预测后续数值吗?
仅仅知道大量的数字序列和取值规则,有办法逆推伪随机数的种子从而预测后续数值吗
答案是不能,但并不绝对,
这并不取决于 你的数字序列和取值规则的多少
,而却取决于所使用的 随机数生成器
也就是 RNG
来决定的
随机数字可以分为分为 PRN 和TRN
伪随机数(PRN)可能是一个接近随机数的序列。
然而,真正的随机数 (TRN) 是通过从熵源获取输入来生成随机数的,这些熵源可以是从振动到硬盘活动的任何类型的物理环境。
C库的rand()属于PRN的范畴。对于高随机性,最好使用使用 /dev/random 或 /dev/urandom 的库。
所以如果你想要达到拟题目中所想要达到的效果,
那么你需要:
TRN
基本不可预测,而前者PRN
即使可以预测,预测序列在计算上很困难并且非常耗时。参考链接:
不知道这个讨论是否对你有所帮助。
如有问题及时沟通
按照统计学来说,只能根据数组序列和取值规则,预测后续数值的概率,而不能推出准确值。