V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dekira
V2EX  ›  硬件

如何获得一个真随机源(在一定程度上)

  •  
  •   dekira · 2017-09-13 23:04:16 +08:00 · 5032 次点击
    这是一个创建于 2628 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做模拟程序的时候想用随机数,然而 rand 函数的随机性不满足要求(可能是我的强迫症导致的)......

    目前设想:有一个稳定的随机源,不断产生随机信号或者随机数,然后传给计算机用于模拟。

    然而,如何获得一个真随机源? 我比较倾向于做一个产生随机信号的电路,然后经过转换发送给电脑用于程序调试。然而: 1.怎么保证随机性,有没有已经被验证的随机源 2.低成本情况下(假设制造成本 500 元一下),可以达到足够的精度和获取速度吗(比如+100.00~-99.99 ,10 个 /ms )? 各位大神有没有制造物理随机源的经验?求指导了

    16 条回复    2017-09-14 15:58:47 +08:00
    am241
        1
    am241  
       2017-09-13 23:18:52 +08:00 via Android
    Intel drng
    另外很多通信芯片都内置硬件随机数源,也就十几块钱
    am241
        2
    am241  
       2017-09-13 23:21:18 +08:00 via Android
    比较常用的是 /dev/urandom 和 /dev/random,应该也足够用
    clearbug
        3
    clearbug  
       2017-09-13 23:22:44 +08:00 via Android
    真随机源一般就是采集大气温度,或者用户鼠标移动等动作,而且现在的 cpu 都内置真随机数了的!(书上这么说的,没亲自测试过)
    momocraft
        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。
    geelaw
        5
    geelaw  
       2017-09-13 23:37:12 +08:00
    定义“一定程度”

    VS2017 实现的 random_device 是密码学安全的。
    SilentDepth
        6
    SilentDepth  
       2017-09-14 00:27:03 +08:00 via iPad   ❤️ 1
    如果接受网络接口的话:random.org ,一个利用大气噪声产生随机数的服务
    Shura
        7
    Shura  
       2017-09-14 01:38:45 +08:00 via Android
    boter
        8
    boter  
       2017-09-14 01:47:35 +08:00
    ryd994
        9
    ryd994  
       2017-09-14 03:20:29 +08:00
    1.配合 hash,假设 hash 够好,输出应该是平均分布的,而熵来自于物理过程
    2.你要估计熵源有多少熵

    学学 Linux,采集从用户输入,磁盘寻道,和 RNG 设备的熵,全部 XOR 进熵池
    /dev/random 保证随机度,保证输出不超过可用的熵
    /dev/urandom 在熵池不足的时候,会以现有熵做种子,配合伪随机算法,可以有无限量的输出,但是不保证输出的熵够
    lty1993
        10
    lty1993  
       2017-09-14 03:53:20 +08:00 via iPad
    yidinghe
        11
    yidinghe  
       2017-09-14 08:09:02 +08:00 via Android
    让用户随机移动鼠标
    zjqzxc
        12
    zjqzxc  
       2017-09-14 08:14:05 +08:00
    买个 sdr 接收机?
    lloovve
        13
    lloovve  
       2017-09-14 08:16:58 +08:00 via iPhone
    Esp32 里面有真随机
    tony1016
        14
    tony1016  
       2017-09-14 09:33:11 +08:00
    做个双缝干涉实验??
    dekira
        15
    dekira  
    OP
       2017-09-14 09:56:18 +08:00
    @am241 @ryd994 已经开始转到 linux 了......hash 嘛,我还不熟悉
    @geelaw 目前正在用的就是 random_device,效果似乎还可以
    @zjqzxc 第一次听说诶,去查一下先

    感谢大家啦
    @am241
    @clearbug
    @SilentDepth
    gnemux
        16
    gnemux  
       2017-09-14 15:58:47 +08:00   ❤️ 1
    开个脑洞:如果我们的宇宙是由更高层生命创造的虚拟现实,那么大气噪音甚至任何自然界所谓客观存在的现象是不是也有可能是高层生命使用伪随机数产生的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:56 · PVG 21:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.