我需要一个用于c ++应用程序的伪随机数生成器,每次执行应用程序时都会在数字间隔[0,20]中返回相同的值。在应用程序运行时,请求将在循环内部应用。出于调试原因,我需要一个确定的数字序列。
非常感谢您提前
答案 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)