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

  • Post author:
  • Post category:java


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对象方法实现任意范围内的随机整数生成函数的推导思路,一开始看到这个函数不明白为什么它是怎么得来的,经过一番推导后,就明白了,哦,原来是这么回事,既知其然也知其所以然。



版权声明:本文为LuoChx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。