请选择 进入手机版 | 继续访问电脑版
查看: 446|回复: 3

JS根据奖品权重计算中奖概率实现抽奖的方法

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 1596 天

    [LV.Master]伴坛终老

    4251

    主题

    6175

    帖子

    11万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    110173

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-12-26 09:07:50 | 显示全部楼层 |阅读模式

    马上加入IBC,查看更多教程

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本文紧张介绍:使用 JS 根据奖品权重盘算中奖概率实现抽奖的方法。
    一、示例场景

    1.1、设置抽奖活动的奖项名称

    奖项名称:["一等奖", "二等奖", "三等奖", "未中奖"]。假设抽奖活动设置了这四个奖项,固然开发者可以扩展更多。
    1. var prizes = ["一等奖","二等奖","三等奖","未中奖"];    //奖项名称数组
    复制代码
    1.2、设置各奖项权重

    奖项权重:[1, 5, 20, 74]。奖项权重紧张用来表征各奖项的中奖几率,这里奖项权重数组的和值为100(=1+5+20+74),此中1体现一等奖的中奖概率为1%;5体现一等奖的中奖概率为5%;20体现三等奖的中奖概率为20%;末了剩下的74体现未中奖的概率为74%。
    1. var prizeWeight = [1, 5, 20, 74];    //奖项权重数组,表征各奖项的中奖时机占总数的百分比。好比一等奖的中奖率是1%,二等奖的中奖率是5%            
    复制代码
    如果抽奖活动设置的奖项更多,开发者也可以相应扩展权重数组的和值,好比权重和值为500,1000等,并相应设置数组元向来表征每抽500次,可中多少次、什么品级的奖项。
    别的,开发者也可以将奖项名称奖项权重数组归并声明在一个对象中:
    1. //设置奖项名称、权重等数组var prizes = [    {"name": "一等奖", "weight": 1},     {"name": "二等奖", "weight": 5},     {"name": "三等奖", "weight": 20},     {"name": "未中奖", "weight": 74}];
    复制代码
    1.3、抽奖活动规则

    <ul><li data-sort="0">0 < 本次抽奖随机数
    C#论坛 www.ibcibc.com IBC编程社区
    C#
    C#论坛
    IBC编程社区
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则