我想初始化我的输入随机数组以找到输入数组大小的fft。我希望输入数组应该包含复数(例如a + jb),这必须在c中使用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 :(得分:0)
当您插入max + min + 1
和max
的不同值时,请考虑min
的变化情况:
max = 10, min = 0
=&gt; 10 + 0 + 1 = 11 max = 30, min = 20
=&gt; 30 + 20 + 1 = 51 现在,这两个例子中的实际范围是相同的,对吗?
所以,你的等式应该是:
r = rand() % (max - min + 1);
请注意减法,以计算从min
到max
的距离(假设为max > min
)。