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
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
微信扫码关注
更新实时通知