为什么垃圾值不能作为随机数?

Xin*_*nus 3 random

这个问题可能不是特定于语言的.

  • 是否可以创建一个真正的随机数?
  • 如果不是为什么随机数生成必须通过某种算法,为什么垃圾值不能作为随机数.

Meh*_*ari 19

它可以.根据您对随机数的定义:

你永远不能确定http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/2000/300/2318/2318.strip.gif

在大多数应用程序中,您对随机数生成器的期望是生成均匀分布的数字序列.垃圾值不提供此特性.

是否可以创建一个真正的随机数?

如果你将"真正的随机"定义为不可预测的,那么问题是"不可预知的是什么?"

存在加密安全(伪)随机数生成器,其试图从用户级代码隐藏随机数生成器的状态,即,理想地,只有内核模式代码可以可行地预测下一个随机数.

然而,隔离的计算机系统(没有任何外部输入)是确定性有限状态机.也就是说,通过了解机器的当前状态,您始终可以预测下一个状态.因此,如果您的意思是软件系统"不可预测",那么根据此定义,您不能使用确定性系统来生成"真正的随机性".

还有另一种更具哲学性的不可预测性.即使您依赖外部输入(例如大气噪声或其他方式),它们真的难以预测吗?有人可能会说,我们生活在一个确定性的世界,就像一台数字计算机,一切都决心要发生; 所以,没有随机性.我没有答案.

  • 由于不确定性原则,我们的世界不是100%可预测的.您可以测量某些东西来预测其未来行为,但在测量过程中您会稍微改变一下,因此测量后其未来不能精确预测. (4认同)
  • 他改变了颜色.:o (3认同)