返回课程

从 min 到 max 的随机数

重要性: 2

内置函数 Math.random() 创建一个从 01(不包括 1)的随机值。

编写函数 random(min, max) 以生成从 minmax(不包括 max)的随机浮点数。

其工作示例

alert( random(1, 5) ); // 1.2345623452
alert( random(1, 5) ); // 3.7894332423
alert( random(1, 5) ); // 4.3435234525

我们需要将 0…1 区间的所有值“映射”到 minmax 的值。

这可以分两个阶段完成

  1. 如果我们将 0…1 区间的随机数乘以 max-min,则可能的数值区间将从 0..1 扩展到 0..max-min
  2. 现在,如果我们加上 min,可能的区间将变为从 minmax

该函数

function random(min, max) {
  return min + Math.random() * (max - min);
}

alert( random(1, 5) );
alert( random(1, 5) );
alert( random(1, 5) );