可能的重复问题:
了解“随机性”
在C#中实现真正的随机数生成器的最快方法
你好。 功能:
Random rand = new Random();
rand.Next()
它基于秒的时间生成伪随机数。 如何获取真正的随机数? 我的意思是完全随机而不基于系统时间和某些算法。 例如,当你扔一个骰子时,你得到的是真正的随机数,而不是基于时间和任何算法。
您认为使用来自麦克风的短采样或鼠标位置变化之间的时间如何?
可能的重复问题:
了解“随机性”
在C#中实现真正的随机数生成器的最快方法
你好。 功能:
Random rand = new Random();
rand.Next()
它基于秒的时间生成伪随机数。 如何获取真正的随机数? 我的意思是完全随机而不基于系统时间和某些算法。 例如,当你扔一个骰子时,你得到的是真正的随机数,而不是基于时间和任何算法。
您认为使用来自麦克风的短采样或鼠标位置变化之间的时间如何?
将一只猫与一瓶毒药放入盒子中,当单个放射性物质原子衰变时,毒药将被释放。一小时后回来并打开盒子。如果猫死了,在程序中使用0
作为随机位;如果猫还活着,则使用1
。
根据需要重复使用尽可能多的猫和盒子。
让用户连续按几次空格键。使用击键间的微秒时间来初始化随机数生成器。
(或者更好的方法是,使用击键间的微秒时间与256微秒取模的余数来消除任何人类周期性,所以每个按键可以给你1个随机字节,使用适当数量的击键以初始化你的生成器)
大多数编程随机函数都基于数学算法。有些随机数生成器使用空气中的波浪噪声(来自太空辐射),但它们是硬件基础的。