我读过某人的博客,很难得到高精度的随机数,他说如果我们想要获得一百万的机会,使用:
随机(1,1000)*随机(1,1000)&lt; 2优于随机(1,1000000)<2 (我们假设Random(1,n)生成1到n之间的整数)
从理论上讲,两者的概率是相同的,但这些表达式在真实程序中的作用是什么?例如标准C语言中的rand()函数,请提供更多信息。答案 0 :(得分:1)
要求'高精度',你可能想要的是一个加密安全伪随机数生成器,也就是说,它具有足够高的熵,对于高安全性应用来说,它足够随机。 LavaRnd就是其中之一,如果你提供一个镜头盖的网络摄像头(理想情况下是一个完全没有光线的盒子里的网络摄像头)用于输入。
另一种加密声音算法是Blum-Blum-Shub,但速度非常慢。您还可以查看Fortuna。