在C语言中,如何在一定间隔内获得随机数? 例如,获得5到25之间的随机数。
我已经尝试过这样减去:
srand((int) time(NULL));
numero = rand()%max-min;
还尝试建立了一个do-while周期,但从未结束。
答案 0 :(得分:1)
一种在min
(包括)和max
(不包括)之间生成随机数的简单方法是
rand() % (max-min) + min;
但是,这些数字的统计特性可能不是很好,因为rand()
生成的数字的低位数字往往具有较短的周期。
答案 1 :(得分:0)
对于从最小到最大的包容性来说小偏差并不关键的情况:
numero = rand() % (max + 1 - min) + min ;
从统计角度来说,无偏差随机性要稍微复杂一些,但在许多应用中且max + 1 - min
比RAND_MAX
小时通常是不必要的。