为什么程序难以生成随机数?

nzp*_*mad 21 random

我的孩子问我这个问题,我无法给出简明易懂的解释.

所以我希望有人可以.

Jes*_*sak 67

怎么样,"因为计算机只是按照说明操作,随机数字跟随指令相反.如果你按照说明制作一个随机数字,那么它就不是随机的!想象一下,试着给别人一些关于如何选择一个随机数的说明. "

  • 有趣的是,这些评论中提出的解决方案不是"生成随机数的程序".相反,它们是一个读取由其他方法生成的随机数的程序. (4认同)

MrV*_*dez 13

这是一个孩子友好的解释:

  1. 得到一个骰子(双方的数量无关紧要)

  2. 把它们写在一张纸上:

    • 向右移
    • 提升
    • 提升
    • 把骰子翻过来
    • 向下移动
    • 向右移
  3. 向他们展示骰子和纸张.解释骰子代表计算机,论文代表数学或算法,告诉计算机它将返回什么数字.

  4. 现在,滚动骰子.告诉他们你正在"播种"或要求电脑从随机骰子位置开始.

  5. 通过移动骰子,按照纸张中的每个步骤(向右移动).

    • 假设你扔了一个6面的骰子,它在5点播种.向右移动,你得到一个4.
  6. 说明计算机必须以起始值开头.这可以通过任何数量的来源给出,例如日期或鼠标移动.向他们展示他们如何掷骰子决定了起始值.

  7. 说明这张纸是计算机如何获得下一个数字.告诉他们纸上的说明可以像程序员改变随机生成器的算法一样容易地改变.

  8. 玩得开心向他们展示仅受其想象力限制的各种可能性.

现在回答你的问题:

告诉他们,当一位优秀的数学家知道起始值和计算机当前所处的步骤时,数学家可以知道随机数的下一个值是什么.

  1. 要求孩子隐藏纸张并扔掉骰子.
  2. 然后让孩子按照纸上的步骤,然后写下他如何获得下一个随机数.
  3. 然后,向他们展示你的论文.现在你有了他们的随机数生成器的副本,其他任何人都很容易"猜测"下一个随机出来.

无论孩子的算法多么有创意,你仍然应该能够推断出他们的算法.告诉你的孩子,在计算机世界中,没有任何东西是隐藏的,只是通过观察,即使它只是观察到的数字,也可以发现随机数算法.

......作为一个副作用,如果孩子能够提出一个困扰你的好算法,你无法推断出下一个序列,那么你就有了一个聪明的孩子.:d


coo*_*ird 10

让他们设计一个逐步的方法来生成一个随机数.

并且不要接受"从1到10选择一个数字"作为答案;)

尝试一个问题应该说明必须从一组指令生成随机数的困难,就像计算机实际需要做的那样.


Joh*_*lla 9

这是我尝试解释大约八年级的随机性.希望你的孩子觉得它有用!

看起来令人惊讶,计算机并不是很聪明.计算机必须盲目地遵循他们的指示,因此是完全可预测的.事实上,以这种方式不遵循其指示的计算机已被破坏!我们希望计算机能够完全按照我们的要求进行操作

这正是使得随机做事变得困难的原因.必须告诉计算机一系列关于如何生成随机数的指令.但这并不是随机的,因为如果你给别人的指示和相同的起点,他们可以拿出相同的答案.因此,只要遵循指示,计算机就不能真正随机.


edu*_*ffy 5

因为计算机是确定性机器.

  • 我希望这个答案意味着一个笑话? (3认同)