【问题标题】:Pseudo-random number generator for c++ application [closed]c++ 应用程序的伪随机数生成器[关闭]
【发布时间】:2014-03-15 11:30:01
【问题描述】:

我需要一个用于 c++ 应用程序的伪随机数生成器,每次执行应用程序时,它都会在数字区间 [0, 20] 内返回相同的值。请求在应用程序运行时在循环内应用。出于调试原因,我需要一个确定的数字序列。

非常感谢您

【问题讨论】:

  • "return me the same values",那为什么叫随机数呢?
  • <random> 标准库设施有什么问题?

标签: c++ random


【解决方案1】:

rand 的输出是伪随机的,这意味着它看起来实际上是随机的,但每次都以相同的方式计算,从一个称为种子的特殊值开始。使用相同的种子值,您将获得相同的随机数序列。

要设置不同的种子,请在开始生成随机数之前在代码中使用一次标准 C 函数 void srand(unsigned int)

还请看:

【讨论】:

    【解决方案2】:

    您只需每次对随机函数使用相同的种子。 例如:

    #include <stdlib.h>
    #include <stdio.h>
    int main ()
    {
      const int seed = 3;
      /* initialize seed, with the same seed each time: */
      srand (seed);
      printf ("%d %d %d\n", rand()%20, rand()%20, rand()%20);
      return 0;
    }
    

    因此,您每次都会有相同的序列。

    【讨论】:

      【解决方案3】:

      播种具有已知值的随机数生成器,即srand(42)(生命的意义)

      然后使用rand

      http://linux.die.net/man/3/rand

      在所需范围内的数学运算

      【讨论】:

        猜你喜欢
        • 2020-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-02
        • 2011-02-08
        • 2014-05-18
        • 2011-11-03
        • 2014-03-10
        相关资源
        最近更新 更多