TP5 实现转盘抽奖

作者: 华仔233 | 来源:发表于2020-12-11 09:42 被阅读0次

1、实现

转盘分多种情况,常见的有 单纯计算几率限制数量

1.1、单纯结算几率的实现

1)计算出总概率的精度M
2)然后将所有的概率数组依次遍历
3)遍历中随机取出一个1~M的数字
4)如果随机数比当前这个数概率小,则表示命中。
5)反之则将总精度减去当前未命中的概率,表示剩余的总概率

总精度是为了生成随机数,而减去未命中的概率是为了排除出去,最后必定会命中

1.1.1、代码实现
/**
 * 返回转盘抽奖结果
 * @param array $proArr 概率数组
 * @return int|string 返回对应数组的下标
 */
private function getRandPrize($proArr)
{
    $result = '';
    //概率数组的总概率精度
    $proSum = array_sum($proArr);

    //概率数组循环
    foreach ($proArr as $key => $proCur) {
        $randNum = mt_rand(1, $proSum);
        if ($randNum <= $proCur) {
            $result = $key;
            break;
        } else {
            $proSum -= $proCur;
        }
    }
    unset ($proArr);
    return $result;
}
1.1.2、测试

1)我们可以看出已经很接近对应的概率了。
2)我这里是跑一万次,我分别跑了好几次观察结果是可行的。

相关文章

  • TP5 实现转盘抽奖

    1、实现 转盘分多种情况,常见的有 单纯计算几率 和 限制数量 1.1、单纯结算几率的实现 1)计算出总概率的精度...

  • JS实现抽奖转盘

    超级简单的原理:点击转盘指针后随机得到一个数(每个数字对应一个奖项),并确定每个奖项在轮盘上的大概角度,然后调用 ...

  • canvas实现转盘抽奖

    用canvas写了一个简单的转盘抽奖插件, 给大家参考下下。。。 做的时候的想法是,通过传进来的标签以及属性,直接...

  • Android超简单实现九宫格抽奖

    目录 前言 如果有小伙伴想实现转盘抽奖效果的话请看我的另一篇文章《Android超简单实现自定义抽奖转盘效果》 效...

  • 小程序实现大转盘,九宫格抽奖,带跑马灯效果

    基本实现功能 1,小程序仿天猫超市大转盘 2,九宫格转盘抽奖 3,积分抽奖 4,抽到的积分随机生成 5,抽奖结果可...

  • Scratch—转盘抽奖

    【知识延伸】 传统抽奖分为抽奖盒抽取、转盘抽奖等 【要求】 今天我们按照平时转盘抽奖、利用Scratch做一个转盘...

  • php实现刮刮卡大转盘抽奖概率

    php实现刮刮卡大转盘抽奖概率 本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单...

  • css 如何“画”一个抽奖转盘

    主要描述的是如何运用 css 绘制一个抽奖转盘,并运用原生 js 实现转盘抽奖效果。 先来张效果图: 布局 一般来...

  • iOS--老虎机的抽奖实现

    除了转盘形式得抽奖,还有一种老虎机形式用的也比较多,今天我们就来实现下老虎机抽奖的实现

  • 随时开始随时结束的抽奖转盘

    公司要实现点击抽奖开始动画,结果返回后缓慢停止到抽奖区域,在网上Google出来的大部分转盘demo都是等抽奖结果...

网友评论

    本文标题:TP5 实现转盘抽奖

    本文链接:https://www.haomeiwen.com/subject/mygdgktx.html