先為大家介紹一些關於隨機數的相關函數:
var Rand = Math.random();
Math:數學對象,提供資料的數學計算。
Math.random(); 回傳0和1間(包括0,不包括1)的一個隨機數。
Math.ceil(n); 傳回大於等於n的最小整數。
用Math.ceil(Math.random()*10);時,主要取得1到10的隨機整數,取0的幾率極小。
Math.round(n); 傳回n四捨五入後整數的值。
用Math.round(Math.random());可均衡取得0到1的隨機整數。
用Math.round(Math.random()*10);時,可基本均衡取得0到10的隨機整數,其中取得最小值0和最大值10的幾率少一半。
Math.floor(n); 傳回小於等於n的最大整數。
用Math.floor(Math.random()*10);時,可均衡取得0到9的隨機整數。
隨機抽獎,還可擴展,例如設定抽獎的機率,和資料庫一起使用。
//中奖概率需求,100%中奖,有3项奖品,但是抽到书本的概率为20% function draw() { var d_s = GetRandom(100); if (d_s >= 1 && d_s <= 40) { alert('恭喜您抽到XXX!'); } else if (d_s >= 41 && d_s <= 80) { alert('恭喜您抽到XXX!'); } else { alert('恭喜您抽到书本!'); } }
對應的js產生隨機數的函數代碼:
<script> 2function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); return(Min + Math.round(Rand * Range)); } 8var num = GetRandomNum(1,10); 9alert(num); </script> var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; function generateMixed(n) { var res = ""; for(var i = 0; i < n ; i ++) { var id = Math.ceil(Math.random()*35); res += chars[id]; } return res; }
以上就是本文的詳細內容,希望對大家的學習有所幫助。