思路
先把最终的函数代码贴出来,在走思路
//任意范围内的随机整数
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对象方法实现任意范围内的随机整数生成函数的推导思路,一开始看到这个函数不明白为什么它是怎么得来的,经过一番推导后,就明白了,哦,原来是这么回事,既知其然也知其所以然。
版权声明:本文为LuoChx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。