php实现可以设置中奖概率的抽奖程序代码分享
<?php /** * 抽奖 * @param int $total */ function getReward($total=1000) { $win1 = floor((0.12*$total)/100); $win2 = floor((3*$total)/100); $win3 = floor((12*$total)/100); $other = $total-$win1-$win2-$win3; $return = array(); for ($i=0;$i<$win1;$i++) { $return[] = 1; } for ($j=0;$j<$win2;$j++) { $return[] = 2; } for ($m=0;$m<$win3;$m++) { $return[] = 3; } for ($n=0;$n<$other;$n++) { $return[] = '谢谢惠顾'; } shuffle($return); return $return[array_rand($return)]; } $data = getReward(); echo $data; ?>
这篇文章主要介绍了一个抽奖程序,要求一等奖的中奖概率是0.12%,二等奖中奖概率是3%,三等奖中奖概率是12%,其他中奖概率是都是谢谢惠顾
相关推荐
-
微信红包随机生成算法php版
想了想,自己写写php版的微信红包随机生成算法,能不能实现类似的功能(其实也不敢说是算法). // $bonus_total 红包总金额 // $bonus_count 红包个数 // $bonus_type 红包类型 1=拼手气红包 0=普通红包 function randBonus($bonus_total=0, $bonus_count=3, $bonus_type=1){ $bonus_items = array(); // 将要瓜分的结果 $bonus_balance = $bonus
-
php中通过数组进行高效随机抽取指定条记录的算法
php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序. 该算法主要是利用php的array_rand()函数,下面看一下array_rand()函数的主要功能: array_rand-从数组中随机取出一个或多个单元 mixed array_rand(array $input[,int $num_req] ) array_rand()在你想从数组中取出一个或多个随机的单元时相当有用.它接受input作为输入数组和一个可选的
-
适用于抽奖程序、随机广告的PHP概率算法实例
那么我们在程序里必然会设计到算法,即按照一定的概率让用户获得奖品.先来看两个概率算法函数. 算法一 复制代码 代码如下: /** * 全概率计算 * * @param array $p array('a'=>0.5,'b'=>0.2,'c'=>0.4) * @return string 返回上面数组的key */function random($ps){ static $arr = array(); $key = md5(serialize($ps)); if (!isset
-
PHP编程实现计算抽奖概率算法完整实例
本文实例讲述了PHP编程实现计算抽奖概率算法.分享给大家供大家参考,具体如下: <?php //计算抽奖的概率 function get_rand($proArr) { $result = ''; $proSum = array_sum($proArr); foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; bre
-
微信随机生成红包金额算法php版
最近在研究发红包的功能,于是写了个红包的生成算法. 红包生成算法的需求 预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以"分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]. 最简单的思路,先保底,每个小红包保证有min,然后每个请求都随机生成一个0到(max-min)范围的整数,再加上min就是红包的钱数. 这个算法虽然简单,但是有一个弊端:最后生成的红包可能都是min钱数的.也就是说可能最后的红包都是0.01元的. 另
-
php实现自定义中奖项数和概率的抽奖函数示例
本文实例讲述了php实现自定义中奖项数和概率的抽奖函数.分享给大家供大家参考,具体如下: <?php /* * 一个抽奖类,精确到万分之一 * 三个步骤:1.接受一个中奖概率数组;2.接受一个抽奖种子;3.返回中奖等级 */ class Lottery { /* * 中奖概率数组,自动判断奖项数目 * 数组键值和为100,自动计算出不中奖的概率,若初始是超过100抛出一个错误 */ protected $_rate = array(); /* * 设置中奖概率, * @param Array,中
-
php实现概率性随机抽奖代码
1.初始数据: 权重越大,抽取的几率越高 [奖品1, 权重 5], [ 奖品2, 权重6], [ 奖品3, 权重 7], [ 奖品4, 权重2] 2.处理步骤: 1)N = 5 + 6 + 7 + 2 = 20 2)然后取1-N的随机数M 3)界定各 奖品的权重范围值 奖品 1 : 1-5 ; 奖品2 : 6-11: 奖品3: 12-18: 奖品4: 19-20 4) 如果M在某个奖品的权重范围值内,标识这个奖品被抽取到 <?php /** * 奖品 */ class Prize { # ID
-
php编写的抽奖程序中奖概率算法
们先完成后台PHP的流程,PHP的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过概率算法给出中奖结果,同时将未中奖的奖项信息一并以JSON数据格式发送给前端页面. 先来看概率计算函数 function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 foreach ($proArr as
-
php抽奖概率算法(刮刮卡,大转盘)
本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单,代码里有详细注释说明,供大家参考,具体内容如下 <?php /* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例当中就是减去100,也就是说第二个数是在1,900这个范围
-
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
大转盘中奖概率算法在我们的日常生活中,经常遇到,那么基于php代码是如何实现中奖概率算法的,下面通过一段代码实例给大家介绍php中奖概率算法,代码简单易懂,并且附有注释,具体代码如下所示: <?php /* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例
随机推荐
- PHP生成条形码大揭秘
- 很全的SQL中文解释代码第1/2页
- extjs之去除s.gif的影响
- 在Java的Hibernate框架中对数据库数据进行查询操作
- IOS 中KVC的使用方法实例详解
- 基于php实现长连接的方法与注意事项的问题
- Tomcat服务器的安装配置图文教程(推荐)
- Drupal读取Excel并导入数据库实例
- MySQL高可用MMM方案安装部署分享
- JavaScript版本迷局介绍
- IE:免去脱机浏览中的麻烦
- C#百万数据查询出现超时问题的解决方法
- Python实现简单遗传算法(SGA)
- Struts2学习教程之自定义类型转换器的方法
- Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
- pip指定python位置安装软件包的方法
- 基于django传递数据到后端的例子
- JAVA项目常用异常处理汇总
- SpringBoot2.0整合jackson配置日期格式化和反序列化的实现
- C++实现的多重继承功能简单示例