2013-05-27 105 views
1

我想初始化我的輸入隨機數組以查找輸入數組大小的fft。我希望輸入數組應該包含複數(例如a + jb),必須使用c中的rand()來完成。我試圖這樣做:使用rand()函數初始化數組

sint16 min= Some value a; 
sint16 max= Some value b; 
sint32 array[1536]; 

uint16 i; 
for(i=0; i<1536; i++) { 
    r= rand()%(max+min+1)+min; 
    array[i]=r; 
} 

但它沒有產生我需要的結果。

+0

此外,你不應該使用神奇的數字。 – mwerschy

回答

0

考慮當你在maxmin不同值插件如何max + min + 1會有所不同:

  • max = 10, min = 0 => 10 + 0 + 1 = 11
  • max = 30, min = 20 => 30 + 20 + 1 = 51

現在,這兩個例子中的實際範圍是相同的,對嗎?

所以,你公式應該是:

r = rand() % (max - min + 1); 

注意減法,計算距離minmax(假設max > min)。

+2

我認爲這是r = rand()%(max-min + 1)+ min;糾正我,如果我錯了。 –

+0

我同意並已提交相應的修改 - 正在等待審覈。 –