2013-05-27 149 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

我同意并已提交相应的修改 - 正在等待审核。 –