在Javascript在特定範圍生成隨機數
阿新 • • 發佈:2017-11-30
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;
第二個,返回 min
和 max
之間的整數,兩者都包含。
現在,為了獲得整數,你可以使用 round
,ceil
或者 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在特定範圍生成隨機數