1. 程式人生 > >在Javascript在特定範圍生成隨機數

在Javascript在特定範圍生成隨機數

lean 隨機 ava 特定 random log mat 可能 得到

Math.random() 在 0 ( 包含) 和 1 ( 不包含) 之間返回一個 Number因此我們有一個這樣的間隔:

[0....................................1) 

現在,我們想要一個介於 min ( 包含) 和 max ( 不包含) 之間的數字:

[0.................................... 1)
[min.................................max)

但是,首先,我們應該從第二個時間間隔中減去 min 來調整問題:

[0....................................1)
[min - min........................... max - min)

這給出了:

[0.................................... 1)
[0....................................max - min)

我們現在可以應用 Math.random,然後計算。 讓我們選擇一個隨機數:

 Math.random()
 |
[0.................................... 1)
[0.................................... max - min)

因此,我們需要:

x = Math.random() * (max - min);

不要忘記加上 min,這樣我們在[ min,max ) 中得到一個數字:

x = Math.random() * (max - min) + min;

第二個,返回 minmax 之間的整數,兩者都包含。

現在,為了獲得整數,你可以使用 roundceil 或者 floor

你可以使用 Math.round(Math.random() * (max - min)) + min 但是,有可能我想要的範圍是[2, 5) , 然後Math.random() * (max - min) 出來的最大值是4.6, 但是Math.round ( ) 四舍五入就變成了最大值為5。

所以,使用 Math.floor( Math.random()*(max-min) ) + min

轉自

http://blog.leanote.com/post/dujuncheng/%E5%9C%A8Javascript%E5%9C%A8%E7%89%B9%E5%AE%9A%E8%8C%83%E5%9B%B4%E7%94%9F%E6%88%90%E9%9A%8F%E6%9C%BA%E6%95%B0%EF%BC%9F

在Javascript在特定範圍生成隨機數