2014年8月11日 星期一

[JavaScript] About Math.random

網路上找到一篇有關於Math.random的文章,Make JavaScript Math.random() useful這篇是由Andrew Penry所寫,他將Javascript中的亂數函式Math.random()使用方式做了詳細說明。下列將原文的例子重新列表一次。

根據Andrew Penry的測試結果,使用floor的方法,各數出現的機率比較平均,所以floor會較好的選擇。

/*
【原始】
 範例:Math.random()
值範圍:0 ~ 0.9999999(無窮小數)
【最大值】
 範例:Math.random() * 3
值範圍:0 ~ 2.9999999(無窮小數)
【有最小值】
 範例:Math.random() * 2 + 1
值範圍:1 ~ 1.9999999(無窮小數)
【四捨五入】
 範例:Math.round(Math.random*2+1)
值範圍:(1) - (1.5) - (2) - (2.5) - (3)
【取得大於指定數的最小整數值】
 範例:Math.ceil(Math.random()*2)
值範圍:(0) - (0.5) - (1) - (1.5) - (2)
 注意:在Javascript中,Math.ceil(0) 等於 0
【取得小於指定數的最大整數值】
值範圍:(1) - (1.5) - (2) - (2.5) - (3)
*/


//下列為自訂範圍值的亂數函式(最小值,最大值)
function usefloor(min,max) {
return Math.floor(Math.random()*(max-min+1)+min);
}
function useceil(min,max) {
return Math.ceil(Math.random()*(max-min+1)+min-1);
}
function useround(min,max) {
return Math.round(Math.random()*(max-min)+min);
}

沒有留言:

張貼留言