返回課程

從最小值到最大值之間的隨機數字

重要性: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,則可能的區間將從 min 變成 max

函數

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

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