用rand随机函数怎么求指定范围的随机数

rand()%10这样用的话是求0到9范围的随机数,我要是想求5-18范围内的该怎么求?

在EXCEL中使用函数RAND()*(最大值-最小值)+最小值即可得到5-18范围内的随机数了,如下图操作所示:

1、在任一EXCEL单元格数输入“=RAND()*(18-5)+5”;

2、输入完成后按回车,即可得到5-18间的随机数

3、选择生成的随机数,进行填充后就可以很多5-18之间的随机数,如下图所示:

扩展资料

srand((unsigned)time(NULL))则使用系统定时/计数器的值作为随机种子。每个种子对应一组根据算法预先生成的随机数。

所以在相同的平台环境下,不同时间产生的随机数会是不同的,相应的,若将srand(unsigned)time(NULL)改为srand(TP)(TP为任一常量),则无论何时运行、运行多少次得到的“随机数”都会是一组固定的序列,因此srand生成的随机数是伪随机数

库函数中系统提供了两个函数用于产生随机数:srand()和rand()。 原型为:

函数一:int rand(void);

返回一个[0,RAND_MAX]间的随机整数。

函数二:void srand(unsigned seed);

参数seed是srand()的种子,用来初始化srand()的起始值。

参考资料来源:百度百科—rand函数




温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-08-12
最具效率的数学方法:rand()%14+5; //rand【5,18】
--------------------------------------------------------------
下面是取意范围随机整数的公式:
rand()%(max-min+1) +min // 随机区间[min,max]
随机区间[5,18]
=rand()%(18-5+1) +5
=rand()%14+5
第2个回答  2013-06-25
boolean flag = true;
while(flag) {
int i = rand()%18; //取 0-18 范围的随机数
if(i >=5 && i <=18 ) flag =false; //当得到5-18的随机数时跳出循环
}
第3个回答  2013-06-25
像你说的取5-18范围,则rand()%13+5即可
相似回答