带有间隔的随机数

时间:2019-02-14 18:33:22

标签: c random

在C语言中,如何在一定间隔内获得随机数? 例如,获得5到25之间的随机数。

我已经尝试过这样减去:

srand((int) time(NULL));
numero = rand()%max-min;

还尝试建立了一个do-while周期,但从未结束。

2 个答案:

答案 0 :(得分:1)

一种在min(包括)和max(不包括)之间生成随机数的简单方法是

rand() % (max-min) + min;

但是,这些数字的统计特性可能不是很好,因为rand()生成的数字的低位数字往往具有较短的周期。

答案 1 :(得分:0)

对于从最小到最大的包容性来说小偏差并不关键的情况:

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

从统计角度来说,无偏差随机性要稍微复杂一些,但在许多应用中且max + 1 - minRAND_MAX小时通常是不必要的。

相关问题