用于c ++应用的伪随机数发生器

时间:2014-03-15 11:30:02

标签: c++ random

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

非常感谢您提前

3 个答案:

答案 0 :(得分:4)

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

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

另请看一下:

答案 1 :(得分:1)

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

#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;
}

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

答案 2 :(得分:0)

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

然后使用rand

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

进入所需范围的数学