回到课程

从 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) );