【发布时间】:2020-09-15 11:41:43
【问题描述】:
我的问题很简单。我知道 abour srand 和 rand,我知道如何播种我的随机生成器等等。我对 srand 背后的数学特别感兴趣。计算机如何使用比方说 3333 作为种子并计算“随机”数?
【问题讨论】:
-
网上有不少简单的伪随机数生成器的例子,随便搜一下。但是要能够理解和编写一个好的生成器,需要大量的学习和经验,包括大量的数学和统计知识。
-
我不明白这个问题,当您调用
srand时,您将种子作为参数传递。您想知道第一个随机数是如何从该种子生成的吗? -
我们以 srand(time) 为例。这里第一个数字总是跟随 UNIX 时间,这是有道理的。其他数字是通过使用前一个数字作为种子生成的。但问题是 srand 如何获取种子并计算下一个“随机”数?计算机从不做“随机”的事情,但可以使用数学来执行看似“随机”的事情。
-
附言。对不起我在 Stack 上的形式,我在这里完全是新人,需要学习一下以了解如何突出显示事物等等((:
标签: c++