我有一個典型的情況,我需要生成一批隨機數。我已經使用了一個環,其在每次通過生成100枚隨機數:使用srand避免重複種子生成()
for(int i=0; i<npasses; i++)
{
srand(time(NULL)); //Initialize seed
for(int j=0; j<100; j++)
printf("%d ", rand()%10);
printf("\n"); //New line after 100 numbers
}
現在,內循環執行在小於一毫秒。結果,time()的值沒有變化。這重新初始化種子(srand())相同的值和我的隨機數字REPEATED ..
任何人都可以提出一個解決方法/修復。
能否請您給一些示例代碼? –
這不僅是不必要的,而且很危險。大多數發生器現在都有超過32位的週期,並且使用32位種子重複播種會限制您僅使用前幾個有限數量的序列。在程序開始時調用srand()一次,並且只調用一次。 –