12
2019
07

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

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

gzh

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。