Random 真随机数

Random 真随机数,random,programming-languages,Random,Programming Languages,我这里有两个问题: 请给我解释一下真正随机数的含义。我读了很多文章,但我不能理解其中的含义 请给我解释一下Rand()函数背后的代码,最好是c语言++ 真正的随机数是由物理随机事件(本质上不可预测的事件)决定的。e、 (原子的放射性衰变、大气噪音等)。之所以如此,是因为计算机本身不具备真正随机的能力,然而,自然是如此。因此,如果计算机测量自然界中的某个随机值,则该数字是“真正随机的”,但伪是计算机生成种子的地方(C++使用时间生成种子),并且该随机数看起来是随机的,但可以预测 “计算机使用一个函

我这里有两个问题:

  • 请给我解释一下真正随机数的含义。我读了很多文章,但我不能理解其中的含义

  • 请给我解释一下Rand()函数背后的代码,最好是c语言++

  • 真正的随机数是由物理随机事件(本质上不可预测的事件)决定的。e、 (原子的放射性衰变、大气噪音等)。之所以如此,是因为计算机本身不具备真正随机的能力,然而,自然是如此。因此,如果计算机测量自然界中的某个随机值,则该数字是“真正随机的”,但伪是计算机生成种子的地方(C++使用时间生成种子),并且该随机数看起来是随机的,但可以预测
  • “计算机使用一个函数来计算随机数。这意味着:拥有相同的种子,我们每次都会得到相同的随机数行。因此是伪随机数。”–拉尔夫M.里肯巴赫

  • C++使用时间,即自1970年1月1日午夜以来的秒数。因此,当你告诉计算机产生一个随机数时,它需要从1970年1月1日开始的秒数(一个非常大的数字,种子),通过一个算法发送它,然后相应地切碎它以满足你指定的范围
  • 这使计算机读取其时钟以自动获取种子的值。 函数时间返回自1970年1月1日午夜以来经过的秒数。此值将转换为无符号整数,并用作随机数生成器的种子

    这当然是一种简化,更多内容可以在线阅读。以下是参考资料

    参考资料:

    简短的总结:

    真正的随机数是一个在任何情况下都无法计算的数,它是由某个事件生成的,而由
    Rand()
    函数计算的随机数是计算出来的

    计算这样一个数字有多种方法,有些方法比其他方法更复杂


    有关如何在(客观-在本例中)C中工作的更多详细信息,请参阅。

    当您在同一时间发布答案,但对方的答案更好时。好帖子!很高兴!谢谢你的帖子,它也帮了我:)根据你的伪随机数和真随机数一样吗?。。此外,您对真随机数的定义是维基百科中对伪随机数的定义。@Hitehsika我从来没有提到过它们是相同的,它们是通过不同的过程生成的。我想补充一点,生成种子后,计算机使用一个函数来计算随机数。这意味着:拥有相同的种子,我们每次都会得到相同的随机数行。因此是伪随机数。