1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

js随机数的算法

js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要:

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

<!DOCTYPE html>      <html>      	<head>      		<meta charset="UTF-8">      		<title></title>      		<script type="text/javascript">      //			math  数学      //			Math.abs  取绝对值      //			var dd = Math.abs(-10);      //			四舍五入  round四舍五入之后的结果一定是整数(不管多少位数的小数,(小数第一位数来算,满5进1)结果都是整数)      //			var dd =Math.round(6.71);      //			ceil 向上取整      //			结果出来离小数最近的一位整数(7.1)是(比这个数大的整数是8),如果是整数向上向下取整的结果还是它本身:比如(8,向上下取整还是8)      //			var dd = Math.ceil(7.1);      //			向下取整      //			离小数最近的一位整数(比它小的整数4)      			var dd = Math.floor(4.8);      			document.write(dd);      		</script>      	</head>      	<body>      	</body>      </html>
<!DOCTYPE html>      <html>      	<head>      		<meta charset="UTF-8">      		<title></title>      		<script type="text/javascript">      //			Math.random() 是获得一个0-1中间的随机小数,取值范围无限接近于0和1之间      //			var dd = Math.random();      //			每刷新一次,输出的结果都不同,随机的      //			取0-5之间的随机小数这样写;      //			var dd = Math.random()*5;      //			取10-15之间的随机小数  10(x)至15(y) 公式 是(y-x)+x      //			var dd = Math.random()*5+10;      //			也可以这样写      //			var dd = Math.random()*(15-10)+10;      //			取0-10的随机整数      //			round 四舍五入  这样写也可以,但是不严谨,因为取到0和10的机率比别的小      //			var dd =Math.round(Math.random()*(10-0)+0);      //			这样写,floor向下取整,虽然是随机,但我个人认为这样分配的机率比上面的好      //			var dd =Math.floor(Math.random()*(10-0)+0);      //			取10-15随机整数  因为16的随机小数是不会超过16的,再加上16以下的小数是floor向下取整,用16刚好      			var dd = Math.floor(Math.random()*(16-10)+10);      //			套用公式是这样写var dd = Math.floor(Math.random()*(15+1-10)+10);      //			Math.floor(Math.random()*(y+1-x)+x);      			document.write(dd);      		</script>      	</head>      	<body>      	</body>      </html>

原文链接:https://www.qiquanji.com/post/8707.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: