如何在C中創建函數,這會在設置參數之間生成隨機數}((double類型))?在很多languedages它只是只是只是創建在兩個參數之間生成隨機數的函數C
function randomnumber(min, max) {
return Math.random() * (max - min + 1) + min;
}
但我找不到任何良好的解決方案類型雙c中。
如何在C中創建函數,這會在設置參數之間生成隨機數}((double類型))?在很多languedages它只是只是只是創建在兩個參數之間生成隨機數的函數C
function randomnumber(min, max) {
return Math.random() * (max - min + 1) + min;
}
但我找不到任何良好的解決方案類型雙c中。
有幾種方法。上面的答案是可以的,min,max是雙打。 rand()
要記住的重要一點是,它會返回0
和RAND_MAX
之間的隨機整數。 RAND_MAX
至少是2^15
,但在大多數系統2^31
上。如果最小值和最大值是整數,其差值小於RAND_MAX
然後一個非常容易的方法是:
delta = max - min;
r = rand() % delta + min;
#include <stdlib.h> /* rand(), srand(), RAND_MAX */
double randd(double min, double max) {
int r = rand();
double delta = max - min; /* assume max > min */
double tmp = r/(RAND_MAX + 1.0); /* generate up to but excluding max */
return tmp * delta + min;
}
...你使用'floor'所以你真的想要一個隨機*整數*? – hobbs
的確,我剛剛注意到,謝謝指出 – Darlyn
'function' ...? :)返回類型?參數類型? –