2011-06-14 44 views
-2

可能重複:
Repeated random number in a loop在一個循環中重複的隨機數

感謝您的意見之前,我更新的代碼。

首先在主函數中調用我的函數srand

int main() 
{ 
//DefineRelationstozero(); //All predecessors are set to -1 
srand((unsigned)time(0)); 
....... 
...... 
...... 
for (int k=0;k<iterationnumber;k++) 
{ 
..... 
RandomKey();//i call randomkey for every iteration 
}... 

void RandomKey() 
{ 


     for (int k=0;k<ActivityNumber;k++) 
     { 

     Act_num[k].Priority=(rand()%10000)*0.0001;//random number 

     } 


     for (int i=0;i<ActivityNumber;i++) 
      arr[i]=Act_num[i].Priority;    

.... 

結果:每次迭代,我得到完全相同的號碼ARR []

+0

您能否提供最少的可編譯示例來演示該問題? – 2011-06-14 14:12:36

+0

請不要在完全相同的主題上創建新的問題!您可以編輯舊問題以顯示更新後的代碼... – 2011-06-14 14:13:14

+1

您可以創建一個最小,完整,可編輯的問題示例嗎?有關如何做到這一點的提示,以及爲什麼它很有用,請參閱http://sscce.org。 – 2011-06-14 14:14:52

回答

0

也許Act_num [K] .Priority爲int。當你致電:

(rand()%10000)*0.0001 

它給你從< 0,0999的數字。所以,如果Act_num [k] .Priority是整數,那麼你從這個隨機數中得到floor。因此,它始終爲0