js控制隨機數(shù)生成概率代碼實例
更新時間:2019年03月21日 15:22:51 作者:破殼而出的蝌蚪
這篇文章主要介紹了js控制隨機數(shù)生成概率,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
基本思路:把Math.random()生成的數(shù)看著百分比,然后定義每個整數(shù)值取值范圍。
具體內(nèi)容如下,供大家參考
'use strict'; export default class GL { /** * 構(gòu)造函數(shù) * @param {object} opt * @param {number} opt.min 最小整數(shù)值 * @param {number} opt.max 最大整數(shù)值 * @param {Map} opt.fenpei 自定義概率 */ constructor({ min, max, fenpei = new Map() }) { this.min = min; this.max = max; this.fenpei = fenpei; } /** * 可分配百分比 */ get baifenbi() { return (1 - this.peizhi) / (this.max - this.min - this.fenpei.size); } /** * 配置 */ get peizhi() { let result = 0; for (let i of this.fenpei.values()) { if (this.min <= i && i < this.max) result += i; } return result; } /** * 隨機數(shù) * @returns {number} [min,max) */ random() { let t = 0, r = Math.random(); for (let i = this.min; i < this.max; i++) { this.fenpei.has(i) ? t += this.fenpei.get(i) : t += this.baifenbi; if (t > r) return i; } return null; } } let d = new GL({ min: 0, max: 8, fenpei: new Map([ [0, 0.5], // 數(shù)值,百分比 [22, 0.4] ]) }); // 測試 let count = Array(10).fill(0); for (let i = 0; i < 10000; i++) { count[d.random()] += 1; } for (let i = 0; i < count.length; i++) { console.log(count[i] / 10000); }
以上所述是小編給大家介紹的js控制隨機數(shù)生成概率代碼實例詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:
- JS生成隨機數(shù)的多種方法匯總(不同范圍、類型的隨機數(shù))
- JavaScript中隨機數(shù)方法?Math.random()
- Javascript實現(xiàn)仿QQ隨機數(shù)驗證
- Js生成隨機數(shù)/隨機字符串的方法小結(jié)【5種方法】
- JavaScript隨機數(shù)的組合問題案例分析
- js實現(xiàn)隨機數(shù)小游戲
- JavaScript生成指定范圍隨機數(shù)和隨機序列的方法
- javaScript產(chǎn)生隨機數(shù)的用法小結(jié)
- JS隨機數(shù)產(chǎn)生代碼分享
- JavaScript中獲取隨機數(shù)的幾種方法小結(jié)
相關文章
JavaScript基礎語法、dom操作樹及document對象
本文介紹了學習javascript重要的3個內(nèi)容基礎語法、dom操作樹及document對象,小伙伴們一定要弄明白才行2014-12-12前端編碼規(guī)范(3)JavaScript 開發(fā)規(guī)范
這篇文章主要介紹了前端編碼規(guī)范(3)JavaScript 開發(fā)規(guī)范,需要的朋友可以參考下2017-01-01Typescript中interface與type的相同點與不同點的詳細說明
這篇文章主要介紹了Typescript中interface與type的相同點與不同點,并配有實例說明,需要的朋友可以參考下2022-11-11使用RequireJS優(yōu)化JavaScript引用代碼的方法
這篇文章主要介紹了使用RequireJS優(yōu)化JavaScript引用代碼的方法,RequireJS是一款人氣JS庫,需要的朋友可以參考下2015-07-07javascript基礎之查找元素的詳細介紹(訪問節(jié)點)
常用jQuery的話我們知道,jQuery有非常強大的選擇器來查找元素(也稱作訪問節(jié)點),例如:基本選擇器、層次選擇器、過濾選擇器、屬性選擇器等2013-07-07javascript的數(shù)組和常用函數(shù)詳解
這篇文章主要介紹了javascript的數(shù)組和常用函數(shù)詳解,非常詳細,適合新手學習,需要的朋友可以參考下2014-05-05