做模拟程序的时候想用随机数,然而 rand 函数的随机性不满足要求(可能是我的强迫症导致的)......
目前设想:有一个稳定的随机源,不断产生随机信号或者随机数,然后传给计算机用于模拟。
然而,如何获得一个真随机源? 我比较倾向于做一个产生随机信号的电路,然后经过转换发送给电脑用于程序调试。然而: 1.怎么保证随机性,有没有已经被验证的随机源 2.低成本情况下(假设制造成本 500 元一下),可以达到足够的精度和获取速度吗(比如+100.00~-99.99 ,10 个 /ms )? 各位大神有没有制造物理随机源的经验?求指导了
1
am241 2017-09-13 23:18:52 +08:00 via Android
Intel drng
另外很多通信芯片都内置硬件随机数源,也就十几块钱 |
2
am241 2017-09-13 23:21:18 +08:00 via Android
比较常用的是 /dev/urandom 和 /dev/random,应该也足够用
|
3
clearbug 2017-09-13 23:22:44 +08:00 via Android
真随机源一般就是采集大气温度,或者用户鼠标移动等动作,而且现在的 cpu 都内置真随机数了的!(书上这么说的,没亲自测试过)
|
4
momocraft 2017-09-13 23:30:55 +08:00 1
比 rand() 强的伪随机算法很多,比如 SFMT / http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/
如果你真的非常想自己做,白噪声 by definition 应该是真随机。至于精度要看你买多少钱的 ADC。 |
5
geelaw 2017-09-13 23:37:12 +08:00
定义“一定程度”
VS2017 实现的 random_device 是密码学安全的。 |
6
SilentDepth 2017-09-14 00:27:03 +08:00 via iPad 1
如果接受网络接口的话:random.org ,一个利用大气噪声产生随机数的服务
|
7
Shura 2017-09-14 01:38:45 +08:00 via Android
Intel 睿码技术( Secure Key Technology ),生成真随机数
https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide |
8
boter 2017-09-14 01:47:35 +08:00
|
9
ryd994 2017-09-14 03:20:29 +08:00
1.配合 hash,假设 hash 够好,输出应该是平均分布的,而熵来自于物理过程
2.你要估计熵源有多少熵 学学 Linux,采集从用户输入,磁盘寻道,和 RNG 设备的熵,全部 XOR 进熵池 /dev/random 保证随机度,保证输出不超过可用的熵 /dev/urandom 在熵池不足的时候,会以现有熵做种子,配合伪随机算法,可以有无限量的输出,但是不保证输出的熵够 |
10
lty1993 2017-09-14 03:53:20 +08:00 via iPad
|
11
yidinghe 2017-09-14 08:09:02 +08:00 via Android
让用户随机移动鼠标
|
12
zjqzxc 2017-09-14 08:14:05 +08:00
买个 sdr 接收机?
|
13
lloovve 2017-09-14 08:16:58 +08:00 via iPhone
Esp32 里面有真随机
|
14
tony1016 2017-09-14 09:33:11 +08:00
做个双缝干涉实验??
|
15
dekira OP |
16
gnemux 2017-09-14 15:58:47 +08:00 1
开个脑洞:如果我们的宇宙是由更高层生命创造的虚拟现实,那么大气噪音甚至任何自然界所谓客观存在的现象是不是也有可能是高层生命使用伪随机数产生的
|