关于Math.random相关的一些取值式子

365 阅读1分钟

有时,在我们实际项目中,需要在一段区间内去随机取值。
这时,就需要用到Math.random去模拟随机值。
Math.random 的取值范围为[0, 1),即取得到0,取不到1 。
以下为一些取值区间的式子,如需要取整数或者小数点后n位,则通过Math的floor,round,ceil等方法组合实现。

ps: 下面有两个闭区间等各位大佬补充。

// 为方便展示先定义,保存变量,实际使用切勿这样使用
let random = Math.random();
// [0, 1) 
random
// (0, 1]
(random - 1) * -1
// (0, 1) 其实就是前两个式子相加 / 2
(random * -1 + random + 1) / 2
// [0, 1]
待补充


// [a, b)
random * (b - a) + a
// (a, b]
random * (a - b) + b
// (a, b)
(random * (b - a) + random * (a - b) + a + b) / 2
// [a, b]
待补充

扩展:1. [developer.mozilla.org/zh-CN/docs/…]