首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么计算机永远不可能产生真正的随机数?

如果你需要随机选择,你可以抛硬币或掷骰子。如果你这样做了,你就占了电脑的上风。因为计算机软件永远不能生成真正的随机数。当你想在shuffle上播放你最喜欢的专辑时,这并不是那么重要,但当涉及到高风险领域,如安全和赌博时,这就变得不太一样了。

现代电脑可以做一些非常惊人的事情。那么,为什么他们不能做一些像模拟掷骰子这样简单的事情呢?这一切都归结于电脑编程的方式。计算机遵循算法,这些算法本质上就是如何执行任务的指令列表。他们是指令的执行者,所以完全可以预测。尽管如此,工程师们还是很聪明的,他们想出了一些不同的方法来让计算机生成非常接近随机数字的东西,因为它们不能生成真正的随机数字。

产生看似随机数的一种方法是使用伪随机数生成器。这些算法使用数学公式或预先确定的数字表来创建随机的数字序列。如今,生成伪随机数的算法是如此之好,以至于需要一些真正的侦查工作才能确定这些数字实际上不是随机的。不过,这是可能的。有了正确的编程能力,你就可以对用于运行在线扑克游戏的伪随机数进行反向工程,或者对敏感数据进行加密,就可以得到很多其他人的钱。

你可以认为真随机数生成器,第二种方法,确实产生随机性。但是我们需要你在技术上的帮助。原因如下:真随机数生成器使用物理现象来提取实际的随机性,然后使用这些随机现象来生成随机数。这些物理现象可能像掷骰子一样简单,但它们通常更容易测量,比如放射性衰变、大气中的背景噪音,甚至是一个人敲击键盘的间隔时间。在真随机数生成器中仍然存在一些算法,而算法从来都不是真正随机的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191221A06C7A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券