2013年12月26日 星期四

JavaScript 使用 Math.random 取得隨機變數值

一個亂數值夠不夠亂,分佈的是否平均,是決定機率值公不公平的關鍵。

在 JavaScript 裡要產生一個亂數,首推的就是 Math.random() 這函數了。而這個函數值所分佈的範圍是 0 ~ 0.9999... 之間,可以用一個數學式來表示   0≦ X < 1



但我們一般來說,並不大有機會要你去找「大於等於 0,小於 1」的隨機值,反而常會說,請在 1 ~ 3 之間隨機找出一個整數。遇到這情況時怎麼辦呢?可以用

Math.random()*3

這樣,你的亂數值的範圍就變成

0≦ X < 3

但因為我們要得的是從 1 開始算,而不是 0 ,所以就會用  Math.random()*3 + 1
於是就得到

1≦ X < 4

剩下最後一個關鍵,就是使用 Math.floor() 函數。表示是取不大於(等於或小於) X 的最大整數。也就是

Math.floor( Math.random()*3 + 1)



如果日後想要取得 1 到 N 的隨機變數時,就可以用下面的程式:

Math.floor( Math.random()*N + 1)

參考:
01:Make JavaScript Math.random() useful
02:亂數 javascript Math.random()
03:高斯符號
04:[代數] 請問高斯符號與floor是否一樣


沒有留言:

張貼留言