根据中奖概率抽奖算法

根据中奖概率抽奖算法

            $prizes = PrizesService::model()->getArrayAll();//获得所有奖品
            for ($i=0; $i < sizeof($prizes); $i++) { 
                if ($prizes[$i][‘type’] == 0) {

                    $percentsum += $prizes[$i][‘percent’];//计算所有奖品抽中概数的总和(1+50+40=100)
                }
            }
            for ($i=0; $i < $percentsum; $i++) { 
                $random = rand(0,$percentsum);//0–概数总和之间抽取一个随机数
                foreach ($prizes as $key => $value) {//遍历所有奖品
                        if ($random < $value[‘percent’]) {//如果随机数<该奖品的中奖概率数(49<50),则该奖品为抽中的奖品
                            echo $value[‘id’];
                        }else{//如果不符合上述条件
                            $delpercent = $value[‘percent’];
                        }
                }
                $percentsum -= $delpercent;//抽取的随机数减去上述不符合条件的商品的中奖概率数
            }

 

 

emmmm…写完突然发现还有点小问题?emmmmm但是运行起来好像确实概率大的抽中几率大一些……….emm…等想到更好的方法再改吧

转载于:https://my.oschina.net/u/3956078/blog/2873487

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101330.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网页返回顶部的几种方法

    网页返回顶部的几种方法

    2021年11月4日
    56
  • html 简单表格代码「建议收藏」

    html 简单表格代码「建议收藏」&lt;!DOCTYPEhtml&gt;&lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;tablestyle="withd:600px"border="1"&gt; &lt;capti

    2022年8月11日
    8
  • pycharm中导入pandas_新电脑安装软件特别慢

    pycharm中导入pandas_新电脑安装软件特别慢pandas标红,导入库发现pandas库迟迟不能安装后网络寻找方法:进行换源找到ManageRepositories(如果找不到这个,可以查看我的《Pycharm2019安装第三方库》)点击“+”添加第二行点击OK若成功便会如下图会有两个url(注意pilapse只是个例子,你若没有也正常,重点是有pythontuna…)…

    2022年8月27日
    8
  • “多源异构”和“异构同源”定义区分详解「建议收藏」

    “多源异构”和“异构同源”定义区分详解一、多源异构1、定义2、示例解释二、异构同源1、定义2、示例解释三、综合举个简单栗子:叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!

    2022年4月18日
    97
  • 数组与对象的相互转换[通俗易懂]

    数组与对象的相互转换[通俗易懂]数组与对象的相互转换数组转对象需求letarr=[{label:’男’,value:0},{label:’女’,value:1}]//转换为letobj={0:’男’,1:’女’}代码实现letarr=[{label:’男’,value:0},{label:’女’,value:1}]//方案一//思路//1、使用数组的forEach方法遍历数组//2、定义一个空对象//3、将遍历得到的每一个对象中的value值当做新对象的

    2025年10月18日
    4
  • APT防御_简述对安全的理解

    APT防御_简述对安全的理解在信息化的时代,很多业务都依赖于互联网,例如说网上银行、网络购物、网游等。大量的数据依赖于网络。无疑Web成为领导者。随着国家安全法的不断完善,企业及公司对用户隐私以及公司的重要信息逐渐加强重视。也使得暴露在网络上的Web面临更高的挑战。这种黑白交替的时代,黑白技术在对抗中也在不断的发展。也使得安全测试逐渐规范化。作为新人,浅谈一下Web安全观。浅谈从Web安全到APT防御。一、web系统存在的安全性复杂应用系统代码量大、开发人员出现疏忽;系统屡次升级、人员频繁变更,使得代码存在差别;新旧资源存在

    2026年1月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号