不清楚伪随机数的seed 和函数公式,仅仅知道大量的数字序列和取值规则,有办法逆推伪随机数的种子从而预测后续数值吗?
2条回答 默认 最新
关注 仅仅知道大量的数字序列和取值规则,有办法逆推伪随机数的种子从而预测后续数值吗
答案是不能,但并不绝对,
这并不取决于你的数字序列和取值规则的多少
,而却取决于所使用的 随机数生成器
也就是RNG
来决定的详情可参考来源于 StackOverflow对此的的讨论:
c++ - Seeding pseudo random generator with random number from a better random source - Stack Overflow https://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
即使可以预测,预测序列在计算上很困难并且非常耗时。
参考链接:
不知道这个讨论是否对你有所帮助。
如有问题及时沟通
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境
- ¥30 关于#java#的问题,请各位专家解答!
- ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
- ¥20 pcf8563时钟芯片不启振
- ¥20 pip2.40更新pip2.43时报错
- ¥15 换yum源但仍然用不了httpd
- ¥50 C# 使用DEVMOD设置打印机首选项
- ¥15 麒麟V10 arm安装gdal
- ¥20 OPENVPN连接问题