歡迎訪問個人我的博客: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