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%,其他中奖概率是都是谢谢惠顾

(0)

相关推荐

  • 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代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法

    大转盘中奖概率算法在我们的日常生活中,经常遇到,那么基于php代码是如何实现中奖概率算法的,下面通过一段代码实例给大家介绍php中奖概率算法,代码简单易懂,并且附有注释,具体代码如下所示: <?php /* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例

  • php抽奖概率算法(刮刮卡,大转盘)

    本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单,代码里有详细注释说明,供大家参考,具体内容如下 <?php /* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例当中就是减去100,也就是说第二个数是在1,900这个范围

  • php中通过数组进行高效随机抽取指定条记录的算法

    php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序. 该算法主要是利用php的array_rand()函数,下面看一下array_rand()函数的主要功能: array_rand-从数组中随机取出一个或多个单元 mixed array_rand(array $input[,int $num_req] ) array_rand()在你想从数组中取出一个或多个随机的单元时相当有用.它接受input作为输入数组和一个可选的

  • 微信随机生成红包金额算法php版

    最近在研究发红包的功能,于是写了个红包的生成算法. 红包生成算法的需求 预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以"分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]. 最简单的思路,先保底,每个小红包保证有min,然后每个请求都随机生成一个0到(max-min)范围的整数,再加上min就是红包的钱数. 这个算法虽然简单,但是有一个弊端:最后生成的红包可能都是min钱数的.也就是说可能最后的红包都是0.01元的. 另

  • 微信红包随机生成算法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实现自定义中奖项数和概率的抽奖函数.分享给大家供大家参考,具体如下: <?php /* * 一个抽奖类,精确到万分之一 * 三个步骤:1.接受一个中奖概率数组;2.接受一个抽奖种子;3.返回中奖等级 */ class Lottery { /* * 中奖概率数组,自动判断奖项数目 * 数组键值和为100,自动计算出不中奖的概率,若初始是超过100抛出一个错误 */ protected $_rate = array(); /* * 设置中奖概率, * @param Array,中

  • 适用于抽奖程序、随机广告的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的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过概率算法给出中奖结果,同时将未中奖的奖项信息一并以JSON数据格式发送给前端页面. 先来看概率计算函数 function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 foreach ($proArr as

  • 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

随机推荐