我寫了下面的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);
}
}
Seed **曾經**在你的生活中,而不是所有的時間。 –
您正在使用相同數字重複初始化隨機數生成器(只要'time(NULL)'返回相同的值)。不要這樣做,如果你想讓數字看起來像隨機。還要記住'#include'爲'time()'原型。 –
pmg
[總是重複的數字由rand()給出的可能的重複](http://stackoverflow.com/questions/4859089/always-repeated-numbers-given-by-rand)。在提問前請使用SO的搜索功能。 –