JavaScript,任意范围内的随机整数生成函数推导

本文详细解析了如何使用JavaScript的Math对象方法推导出生成指定区间内随机整数的函数,通过枚举法逐步揭示了Math.random()和Math.floor()的组合原理。

JavaScript,任意范围内的随机整数生成函数推导

思路

先把最终的函数代码贴出来,在走思路

//任意范围内的随机整数
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

//用到的Math静态方法
Math.floor()   //向下取整
Math.random()  //0~1之间的伪随机数,小于1
//枚举法
Math.random() * 10   //[0, 10)之间的随机数,
Math.random() * 9    //[0, 9)之间的随机数 ,
Math.floor(Math.random() * 10)  //[0, 9],0到9之间的随机整数
Math.floor(Math.random() * 9)   //[0, 8],0到8之间的随机整数
Math.floor(Math.random() * 8)   //[0, 7],0到7之间的随机整数
...
...
Math.floor(Math.random() * x)    //[0, (x - 1)], 0到x - 1之间的随机整数
Math.floor(Math.random() * x + 1)  //[0, x], 0到x之间的随机整数
//[0, x], 0到x之间的随机整数
Math.floor(Math.random() * (x + 1))
//[y, x], y到x之间的随机整数
Math.floor(Math.random() * (x + 1)) + y
=> [y, x + y]
=> Math.floor(Math.random() * (x + 1 - y)) + y
//[y, x], y到x之间的随机整数
Math.floor(Math.random() * (x + 1 - y)) + y
=>
//[Min, Max], Min到Max之间的随机整数
Math.floor(Math.random() * (Max + 1 - Min)) + Min

总结

以上就是关于利用js中,Math对象方法实现任意范围内的随机整数生成函数的推导思路,一开始看到这个函数不明白为什么它是怎么得来的,经过一番推导后,就明白了,哦,原来是这么回事,既知其然也知其所以然。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值