首页 > 编程语言 >Javascript-奖品概率算法

Javascript-奖品概率算法

时间:2022-12-15 12:12:09浏览次数:47  
标签:奖品 prize 8.8 Javascript prop 算法 let 16.2 id

const LUCKY_AIRDROP_PRIZE = [
    { "id": 1, "prop": 16.2 },
    { "id": 2, "prop": 16.2 },
    { "id": 3, "prop": 16.2 },
    { "id": 4, "prop": 16.2 },
    { "id": 5, "prop": 8.8 },
    { "id": 6, "prop": 8.8 },
    { "id": 7, "prop": 8.8 },
    { "id": 8, "prop": 8.8 },
];
module.exports = {
  getPrizeInfo: function(){
        const prize = utils.clone(LUCKY_AIRDROP_PRIZE);
        let propArr = [];
        for(let i = 0; i < prize.length; i++){
            propArr.push(prize[i]['prop'])
        }
        return prize[this.probabilisticAlgorithm(propArr)]['id'];
    },
    // 奖品概率算法
    probabilisticAlgorithm: function (arr){
        let leng = 0;
        for(let i=0; i < arr.length; i++){
            leng += arr[i]                                     //获取总数
        }
        for(let i=0; i<arr.length; i++){
            let random = parseInt(Math.random()*leng);       //获取 0-总数 之间的一个随随机整数
            if(random < arr[i]){
                return i                                     //如果在当前的概率范围内,得到的就是当前概率
            } else {
                leng -= arr[i]                                 //否则减去当前的概率范围,进入下一轮循环
            }
        }
    }
}

 

标签:奖品,prize,8.8,Javascript,prop,算法,let,16.2,id
From: https://www.cnblogs.com/Essaycode/p/16984660.html

相关文章

  • openharmony 军棋工兵寻径算法的实现
    openharmony军棋工兵寻径算法的实现一,引言工兵可在铁路线上任意行走,其它棋子在铁路线上只能直走或经过弧形线,不能转直角弯;工兵在普通路线上跟其他棋子一样,走一格。......
  • 刷题笔记 | 经典算法题-阶乘计算
    题目描述给定一个正整数n,求出n!的值。输入描述输入一个正整数n,n<=1000。输出描述输出n!。输入输出样例示例输入10输出3628800python代码实现:impo......
  • 彻底搞懂JavaScript防抖与节流
    今天为大家带来一篇JS重难点的知识体系,这也是前端高薪必备的重难点知识,而且防抖与节流在各大企业前端面试过程中经常会考到的高频面试题! 为了更好的帮助大家理解防抖......
  • m分别通过GA遗传优化算法对企业不同产品订单生产进行时间优化
    1.算法概述首先介绍MATLAB部分的遗传算法的优化算法介绍:遗传算法的原理遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算......
  • kmp算法比较次数|next
    首先算出子串next序列(前文有讲)再而开始子串比较,比较次数为整个子串,遇到首个不同字符时,后移个数为:已经匹配个数-不同字符对应next值,再次比较计数从上次不同字符起视频......
  • JavaScript学习--Item1 严格模式
    一、概述除了正常运行模式,ECMAscript5添加了第二种运行模式:“严格模式”(strictmode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。设立”严格模式”的目的,主要......
  • 为什么MD5算法不可逆,但网上有很多网站声称能够解密MD5
    我们要明白,MD5不是加密算法,而是一种信息摘要算法,主要用于保证数据的完整性,以及数据不被篡改。既然不是加密算法,那么就不存在解密的说法,但是为什么网上有很多网站声称能够解......
  • 为什么MD5算法不可逆,但网上有很多网站声称能够解密MD5
    我们要明白,MD5不是加密算法,而是一种信息摘要算法,主要用于保证数据的完整性,以及数据不被篡改。既然不是加密算法,那么就不存在解密的说法,但是为什么网上有很多网站声称能够解......
  • 为什么MD5算法不可逆,但网上有很多网站声称能够解密MD5
    我们要明白,MD5不是加密算法,而是一种信息摘要算法,主要用于保证数据的完整性,以及数据不被篡改。既然不是加密算法,那么就不存在解密的说法,但是为什么网上有很多网站声称能够解......
  • 基本排序算法总结(转)
    基本排序算法总结原文:https://blog.csdn.net/qq_21187515/article/details/127212565一直想总结一下最常用的排序算法,自己写一下代码并运行一下记忆更深刻1、插入排序......