如何获得真正的随机数?

Hoo*_*och 4 random algorithm

可能的重复:
理解"随机性"
C#中真正的随机数生成器的最快实现

你好.功能:

Random rand = new Random();
rand.Next()
Run Code Online (Sandbox Code Playgroud)

它以秒为单位给出基于时间的伪随机数.如何获得真正随机的数字?我的意思是完全随机,不是基于系统时间和一些算法.就像,当你丢弃一个立方体时,你得到了真正的随机数,而不是基于时间和任何算法.

您如何看待使用麦克风的短样本或鼠标位置变化之间的时间?

And*_*ewF 25

将一只猫放入装有一瓶毒药的盒子里,当放射性物质的单个原子衰变时,它会释放出来.一小时后回来打开包装盒.如果猫死了,请0在程序中使用随机位.如果它还活着,请使用1.

根据需要重复尽可能多的猫和盒子.


jk.*_*jk. 7

你可以使用random.org等服务


Mar*_*arc 5

要求用户按空格键几次.使用击键之间的微秒时间来为随机数生成器播种.

(或者更好,使用剩余的时间,以微秒为单位,模拟256微秒,以消除任何人的周期性.因此,每个按键为您提供1个随机字节,使用适当数量的笔划为您的生成器播种)


mlu*_*iak 5

大多数编程随机函数都基于数学算法.有随机数发生器,它们使用空气中的波浪噪声(来自太空辐射),但它们是基于硬件的.


Mic*_*rdt 5

为此,您需要一个硬件随机数生成器.

一个足够好的大多数案例替代它是测量"硬件事件"的时间,例如用户输入或网络活动.

在Linux上,/dev/random设备基于此方法生成字节.