js基础–测试随机数的概率是否相等

3次阅读

共计 714 个字符,预计需要花费 2 分钟才能阅读完成。

欢迎访问我的个人博客:http://www.xiaolongwu.cn
前言
今天我们来做一个有趣的测试,那就是我们在某个范围之间取随机数时,每项被随机到的概率是否相等。
随机方法
我们都知道 Math.random()的结果是 [0, 1) 之间的小数,结果包括 0 但是不包括 1。
那么很简单就会想到 Math.random() * n 的结果是 [0, n) 之间的小数,结果包括 0 但是不包括 n。
那么 parseInt(Math.random() n)的结果就是 [0, n) 之间的正整数,parseInt(Math.random() n + 1)的结果就是 [1, n+1) 之间的正整数。
那么 parseInt(Math.random() * (m – n) + n)的结果就是 [n, m) 之间的正整数。
开始证明
我们首先写一个方法,随机 7500 个在 a 和 b 之间的数。
function randomArr(a, b) {
var obj = {}
for (let i = 0; i < 7500; i++) {
const n = parseInt(Math.random() * (b – a) + a);
if (!obj[n]) {
obj[n] = 1;
} else {
obj[n] ++;
}
}
console.log(obj)
}

randomArr(5, 10)
randomArr(5, 15)
randomArr(5, 20)
结果如下:

由此,我们大致能得出结论,随机数的每项概率基本是相等的;
github 资源地址:js 基础 – 测试随机数的概率是否相等
我的 CSDN 博客地址:https://blog.csdn.net/wxl1555
如果您对我的博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同学习进步。
邮箱:wuxiaolong802@163.com

正文完
 0