JS随机数实例详解

发布时间:2020-03-21编辑:脚本学堂
本文介绍了js随机数的生成方法,几个js生成随机数的例子,有需要的朋友参考下。

例1,js生成指定位数的随机数
 

复制代码 代码示例:

<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的随机整数。

例2,js生成范围内的随机数 。

模仿C#实现的一个生成随机区间整数的函数。
 

复制代码 代码示例:
//获取范围内的随机数
 function random(min,max){
    return Math.floor(min+Math.random()*(max-min));
}
 

这个生成随机数的代码,相对简单很多。
例如,生成0-9的随机数(包括0和9) random(0,9)。

例3,js产生随机数。
 

复制代码 代码示例:

<script>
document.write(parseInt(10*Math.random()));  //输出0~10之间的随机整数
document.write(Math.floor(Math.random()*10+1));  //输出1~10之间的随机整数

function RndNum(n){
var rnd="";
for(var i=0;i<n;i++)
rnd+=Math.floor(Math.random()*10);
return rnd;
}
document.write(RndNum(4));  //输出指定位数的随机数的随机整数

引用部分:
. 从1开始 至 任意值
parseInt(Math.random()*上限+1);
. 从任意值开始 至 任意值
parseInt(Math.random()*(上限-下限+1)+下限);
 

复制代码 代码示例:
function fRandomBy(under, over){
switch(arguments.length){
case 1: return parseInt(Math.random()*under+1);
case 2: return parseInt(Math.random()*(over-under+1) + under);
default: return 0;
}
}
document.write(fRandomBy(1,100));  //输出指定范围内的随机数的随机整数
</script>

//给既定文本框按规则付不同的值[引申]
 

复制代码 代码示例:
<script>
window.onload=function(){
var o=document.getElementsByTagName('input');
o[0].value=fRandomBy(1,10);
o[1].value=fRandomBy(11,20);
o[2].value=fRandomBy(1,100);
o[3].value=fRandomBy(51,100);
}
</script>
-10: <input type="text" /><br />
-20: <input type="text" /><br />
-100: <input type="text" /><br />
-100: <input type="text" /><br />
<html>
<head>
<title>Math</title>
</head>
<body>
<script language="javascript" type="text/javascript">
total = 0
for(i=1;i<=5000;i++)
{num=Math.random();
total +=num
}
average = total/5000
average = Math.round(average*1000)/1000
document.write("<h1>平均数:"+average+"</h1>")
</script>
</body>
</html>

例4,Js 随机数产生6位数字。
Js随机产生6为数字的代码,即生成6位数字随机数。
 

复制代码 代码示例:
<script type="text/javascript">
function MathRand()
{
var Num="";
for(var i=0;i<6;i++)
{
Num+=Math.floor(Math.random()*10);
}
document.getElementById("Lb_Random").innerText=Num;
document.getElementById("Lb_Random").innerHTML=Num;
}
</script>

最后,作为总结,介绍下js生成随机数中常用到的random函数的例子。
js生成随机数,可以使用JavaScript Math.random()内置函数。

以下是Math.random函数的用法:
JavaScript Math.random()内置函数
random函数返回值
返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)

例子,random函数的使用实例。
 

复制代码 代码示例:
//返回随机数
document.write(Math.random());
//返回10-20的随机数
document.write(Math.random()*(20-10)+10);
//返回指定范围的随机数(m-n之间)的公式
document.write(Math.random()*(n-m)+m);
//基于时间,亦可以产生随机数
var now=new Date();
var number = now.getSeconds(); //这将产生一个基于目前时间的0到59的整数。
var now=new Date();
var number = now.getSeconds()%43; //这将产生一个基于目前时间的0到42的整数。

以上通过实例介绍了js随机数的生成方法,以及js中随机数生成函数Math.random的用法,希望对大家有所帮助。