js基础--测试随机数的几率是否相等

欢迎访问个人我的博客:http://www.xiaolongwu.cngit

前言

今天咱们来作一个有趣的测试,那就是咱们在某个范围之间取随机数时,每项被随机到的几率是否相等。github

随机方法

咱们都知道Math.random()的结果是[0, 1)之间的小数,结果包括0可是不包括1。dom

那么很简单就会想到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)之间的正整数。spa

开始证实

咱们首先写一个方法,随机7500个在a和b之间的数。.net

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)

结果以下:code

测试结果

由此,咱们大体能得出结论,随机数的每项几率基本是相等的;blog

github资源地址:js基础--测试随机数的几率是否相等资源

个人CSDN博客地址:https://blog.csdn.net/wxl1555

若是您对个人博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同窗习进步。

邮箱:wuxiaolong802@163.com

相关文章
相关标签/搜索