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

相關文章
相關標籤/搜索