JS生成指定范围随机数

相关面试题:
(01) 用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值

相关知识:

 Math.random()    // [0,1) 伪随机数 浮点数
 Math.ceil()      // 向上取整
 Math.floor()     // 向下取整
 Math.round()     // 四舍五入
 parseInt()    // 取整数部分
 Math.ceil(Math.random()*10);    // [0,10] 但基本相当于获取从1到10的随机整数,因取0的概率极小。
 Math.floor(Math.random()*10);   // [0,10) 可均衡获取0到9的随机整数。
 Math.round(Math.random()*10);   // [0,10] 基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。
 // 因结果在0~0.4 为0,0.5到1.4为1...8.5到9.4为9,9.5到9.9为10。所以头尾的分布区间只有其他数字的一半。
 Math.random()  // [0, 1) 随机浮点数
 Math.random()*(m-n) + n  // [n, m) 随机浮点数; m-n可看为是length
 Math.round(Math.random())    // 随机获取0或1,获取几率较均衡
 Math.floor(Math.random()*m)  // 随机获取[0,m)、即[0, m-1]之间整数,获取均衡
 Math.floor(Math.random()*m)+1  // 随机获取[1,m) 、即[1, m-1]之间整数,获取均衡

生成指定范围内的随机整数:

[min, max)

 parseInt(Math.random()*(max-min)) + min 
 Math.floor(Math.random()*(max-min)) + min

[min, max] -> 相当于[min, max+1)

 Math.floor(Math.random()*(max+1-min))+min

(min, max]

 Math.ceil(Math.random()*(max-min)) + min

(min, max) -> 相当于[min+1, max)

 Math.floor(Math.random()*(max-(min+1)) + min+1

参考:
https://www.cnblogs.com/starof/p/4988516.html
https://www.hangge.com/blog/cache/detail_1872.html

你可能感兴趣的:(JS生成指定范围随机数)