【发布时间】:2012-01-09 00:08:15
【问题描述】:
我在下面写了这段 C 代码,当我循环时,它返回一个随机数。如果执行 myrand(),如何获得 5 个不同的随机值?
#include <stdio.h>
#include <stdlib.h>
int myrand() {
int ue_imsi;
int seed = time(NULL);
srand(seed);
ue_imsi = rand();
return ue_imsi;
}
int main()
{
int value = 0;
int i=0;
for (i=0; i< 5; i++)
{
value =myrand();
printf("value is %d\n", value);
}
}
【问题讨论】:
-
在你的生活中播种一次,而不是一直。
-
您一遍又一遍地用相同的数字初始化随机数生成器(只要
time(NULL)返回相同的值)。如果您希望数字看起来像随机的,请不要这样做。还记得#include <time.h>为time()原型。 -
Always repeated numbers given by rand() 的可能副本。请在提问前使用 SO 的搜索工具。