不清楚伪随机数的seed 和函数公式,仅仅知道大量的数字序列和取值规则,有办法逆推伪随机数的种子从而预测后续数值吗?
2条回答 默认 最新
关注仅仅知道大量的数字序列和取值规则,有办法逆推伪随机数的种子从而预测后续数值吗答案是不能,但并不绝对,
这并不取决于你的数字序列和取值规则的多少,而却取决于所使用的 随机数生成器也就是RNG来决定的详情可参考来源于 StackOverflow对此的的讨论:
c++ - Seeding pseudo random generator with random number from a better random source - Stack Overflowhttps://stackoverflow.com/questions/44179765/seeding-pseudo-random-generator-with-random-number-from-a-better-random-source
随机数字可以分为分为 PRN 和TRN
伪随机数(PRN)可能是一个接近随机数的序列。
然而,真正的随机数 (TRN) 是通过从熵源获取输入来生成随机数的,这些熵源可以是从振动到硬盘活动的任何类型的物理环境。
C库的rand()属于PRN的范畴。对于高随机性,最好使用使用 /dev/random 或 /dev/urandom 的库。所以如果你想要达到拟题目中所想要达到的效果,
那么你需要:- 1、看一下你所调用的随机数生成器是什么 是生成的PRN还是TRN
- 2、后者
TRN基本不可预测,而前者PRN即使可以预测,预测序列在计算上很困难并且非常耗时。
参考链接:
不知道这个讨论是否对你有所帮助。
如有问题及时沟通
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录