您現在的位置: 365建站網 > 365學習 > js/javascript中Math.random()函數生成隨機數字

js/javascript中Math.random()函數生成隨機數字

文章來源:365jz.com     點擊數:367    更新時間:2017-12-07 18:54   參與評論

摘要:

本文講解如何使用js生成n到m間的隨機數字,主要目的是為后期的js生成驗證碼做準備。

Math.random()函數返回0和1之間的偽隨機數,可能為0,但總是小于1,[0,1)

生成n-m,包含n但不包含m的整數:

第一步算出 m-n的值,假設等于w

第二步Math.random()*w

第三步Math.random()*w+n

第四步parseInt(Math.random()*w+n, 10)

生成n-m,不包含n但包含m的整數:

第一步算出 m-n的值,假設等于w

第二步Math.random()*w

第三步Math.random()*w+n

第四步Math.floor(Math.random()*w+n) + 1

生成n-m,不包含n和m的整數:

第一步算出 m-n-2的值,假設等于w

第二步Math.random()*w

第三步Math.random()*w+n +1

第四步Math.round(Math.random()*w+n+1) 或者 Math.ceil(Math.random()*w+n+1)

生成n-m,包含n和m的隨機數:

第一步算出 m-n的值,假設等于w

第二步Math.random()*w

第三步Math.random()*w+n

第四步Math.round(Math.random()*w+n) 或者 Math.ceil(Math.random()*w+n)

例子:

  生成800-1500的隨機整數,包含800但不包含1500

 

1500-800 = 700

Math.random()*700

var num = Math.random()*700 + 800;

num = parseInt(num, 10);



只需要簡單的四步就可以完成。



補充:

 

  Math.ceil() 返回大于等于數字參數的最小整數(取整函數),對數字進行上舍入

  Math.floor() 返回小于等于數字參數的最大整數,對數字進行下舍入

  Math.round() 返回數字最接近的整數,四舍五入

<script>  
function GetRandomNum(Min,Max)
{  
var Range = Max - Min;  
var Rand = Math.random();  
return(Min + Math.round(Rand * Range));  
}  
var num = GetRandomNum(1,10);  
alert(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;
}



1.Math.random(); 結果為0-1間的一個隨機數(包括0,不包括1)
2.Math.floor(num); 參數num為一個數值,函數結果為num的整數部分。
3.Math.round(num); 參數num為一個數值,函數結果為num四舍五入后的整數。

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的隨機整數。

如對本文有疑問,請提交到交流論壇,廣大熱心網友會為你解答??! 點擊進入論壇


發表評論 (367人查看,0條評論)
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼: 點擊我更換圖片
最新評論
------分隔線----------------------------
自拍偷拍福力视频,偷拍国际精品,麻豆一区福利电影,国产网红视频午夜福利,se视频大全,久久国产AV影院 中国护士毛茸茸性| 吸弄小核喝花水| 18欧美乱大交| 色老板视频不能播放器| 高龄熟女の中出しセックス| 色狠狠色婷婷丁香五月| 欧美另类图片区视频一区| caoporm碰视频公开视频| 亚洲最大色倩网站www| 医生玩弄刚刚发育小奶头| 亚洲日本va一区二区三区| 最近2018中文字幕2019国语| 韩国大尺度做爰视频| 强壮公么夜夜高潮| 亚洲色图片| 玩弄漂亮少妇高潮白浆| 特级欧美aaaaaa片| 日本无码av不卡一区二区三区| 小草在线观看免费| 非洲人粗长硬配种视频| 国产网友愉拍精品视频手机| 日本中文一二区有码在线| 99pao在线视频国产| 最新国偷产拍在线播放| 放荡的大学| 欧美亚洲色综合图区| 宝贝你要吗快点太大了| 男男同志18vidos| 精品国产在线人人久久| 日本高清视2018色视频不卡| 窝窝影院午夜看片| http://www.suning-asia.com