金沙贵宾会官网|金沙贵宾会登录-官网

【A】金沙贵宾会官网超高的返奖率为娱乐者提供资金保障,所以金沙贵宾会登录官网更加的方便了你的娱乐,申请88元彩金,因为在当中不仅仅只有游戏。

适用于抽奖程序,PHP大转盘中奖概率算法与示例

日期:2019-09-26编辑作者:网络技术

不久前做事中有一系列,应用程式顾客端有大转盘抽取奖金,具体怎样抽取奖金当然在我们服务端完结洛。上边和咱们简单分享一下贯彻代码:

正文实例叙述了PHP大转盘中奖几率算法的实现情势,分享给大家供大家参谋。具体如下:

那正是说我们在前后相继里一定会规划到算法,即根据一定的票房价值让客商获得奖品。先来看三个票房价值算法函数。

 代码如下

大转盘是新近无数线上网动中贰个相比较好玩的事物了,下边大家就来看看那个大转盘中奖可能率算法与例子,希望对各位有所帮忙。

算法一

header("Content-type: text/html; charset=utf-8");
$prize_arr = array(
'0' => array('id'=>1,'prize'=>'机械计算机','v'=>1),
'1' => array('id'=>2,'prize'=>'数码相机','v'=>5),
'2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),
'3' => array('id'=>4,'prize'=>'4G优盘','v'=>12),
'4' => array('id'=>5,'prize'=>'10Q币','v'=>22),
'5' => array('id'=>6,'prize'=>'下一次难说就能够中哦','v'=>50),
);
 
$actor = 100;
 
foreach ($prize_arr as $v) {
$arr[$v['id']] = $v['v'];
}
foreach ($arr as &$v) {
$v = $v*$actor;
}
asort($arr);
$sum = array_sum($arr);   //总概率
 
$rand = mt_rand(1,$sum);
 
$result = '';    //中奖产品id
 
foreach ($arr as $k => $x)
{
if($rand <= $x)
{
$result = $k;
break;
}
else
{
$rand -= $x;
}
}
$res['yes'] = $prize_arr[$result-1]['prize']; //中奖项
print_r($res);

那是三个应用程式顾客端有大转盘抽取奖品算法,具体怎么样抽取奖品当然在大家服务端完结了。上边和我们轻巧分享一下兑今世码:

复制代码 代码如下:

复制代码 代码如下:

/**
 * 全可能率计算
 *
 * @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));

header("Content-type: text/html; charset=utf-8");
$prize_arr = array(
'0' => array('id'=>1,'prize'=>'苹果平板','v'=>1),
'1' => array('id'=>2,'prize'=>'单反','v'=>5),
'2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),
'3' => array('id'=>4,'prize'=>'4G优盘','v'=>12),
'4' => array('id'=>5,'prize'=>'10Q币','v'=>22),
'5' => array('id'=>6,'prize'=>'后一次难说就能够中哦','v'=>50),
);
 
$actor = 100;
 
foreach ($prize_arr as $v) {
$arr[$v['id']] = $v['v'];
}
foreach ($arr as &$v) {
$v = $v*$actor;
}
asort($arr);
$sum = array_sum($arr);   //总概率
 
$rand = mt_rand(1,$sum);
 
$result = '';    //中奖产品id
 
foreach ($arr as $k => $x)
{
if($rand <= $x)
{
$result = $k;
break;
}
else
{
$rand -= $x;
}
}
$res['yes'] = $prize_arr[$result-1]['prize']; //中奖项
print_r($res);

    if (!isset($arr[$key])) {
        $max = array_sum($ps);
        foreach ($ps as $k=>$v) {
            $v = $v / $max * 10000;
            for ($i=0; $i<$v; $i++) $arr[$key][] = $k;
        }
    }
    return $arr[$key][mt_rand(0,count($arr[$key])-1)];

盼望本文所述对大家的PHP程序设计具备匡助。

算法二

你大概感兴趣的小说:

  • php编写的抽取奖品程序中奖可能率算法
  • 采纳PHP完毕二分查找算法代码分享
  • PHP 快捷排序算法详解
  • 适用于抽取奖金程序、随机广告的PHP可能率算法实例
  • php达成猴子选大王难点算法实例
  • php完毕的微信红包算法剖判(非官方)
  • php抽取奖品几率算法(刮刮卡,大转盘)
  • php 3行代码的分页算法(求开首页和得了页)
  • 深远驾驭PHP多少个算法:PHP冒泡、PHP二分法、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;
            break;
        } else {
            $proSum -= $proCur;
        }
    }
    unset ($proArr);

    return $result;
}

上述代码是一段精华的可能率算法,$proArr是叁个先行安装的数组,借使数组为:array(100,200,300,400),开端是从1,一千以此可能率范围内筛选第三个数是或不是在她的产出概率范围之内, 借使不在,则将可能率空减,也正是k的值减去刚刚的百般数字的可能率空间,在本例当中正是减去100,也正是说第一个数是在1,900那个界定内筛选的。那样筛选到最终,总会有三个数满意须求。就也正是去一个箱子里摸东西,第二个不是,第三个不是,第多少个还不是,那最终四个一定是。那一个算法轻巧,何况功效极高,关键是其一算法已在我们原先的档期的顺序中有选取,极其是时局据量的类别中成效相当的厉害。
接下去大家透过PHP配置奖项。

复制代码 代码如下:

$prize_arr = array(
    '0' => array('id'=>1,'prize'=>'GALAXY Tab','v'=>1),
    '1' => array('id'=>2,'prize'=>'单反相机','v'=>5),
    '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),
    '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12),
    '4' => array('id'=>5,'prize'=>'10Q币','v'=>22),
    '5' => array('id'=>6,'prize'=>'后一次难说就能够中哦','v'=>50),
);

 
中是多个二维数组,记录了具备这一次抽取奖品的奖项新闻,当中id表示中奖等第,prize表示奖品,v表示中奖概率。注意个中的v必须为整数,你能够将相应的奖项的v设置成0,即意味着该奖项抽中的可能率是0,数组中v的总量(基数),基数越大越能反映可能率的准确性。本例中v的总量为100,那么平板Computer对应的中奖概率正是1%,如若v的总的数量是一千0,那中奖可能率正是少见了。
老是前端页面包车型地铁伸手,PHP循环奖项设置数组,通过概率计算函数get_rand获得抽中的奖项id。将中奖奖品保存在数组$res['yes']中,而剩余的未中奖的新闻保存在$res['no']中,最终输出json个数数据给前端页面。

复制代码 代码如下:

//倘使中奖数据是身处数据Curry,这里就须要开展判定中奖数量
//在中1、2、3等奖的,假若到达最大数量的则unset相应的奖项,制止重新中山大学奖
//code here eg:unset($prize_arr['0'])
foreach ($prize_arr as $key => $val) {
    $arr[$val['id']] = $val['v'];
}

$rid = get_rand($arr); //依照可能率获取奖项id

$res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项
//将中奖项从数组中剔除,剩下未中奖项,假使是数据库验证,这里能够省去
unset($prize_arr[$rid-1]);
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){
    $pr[] = $prize_arr[$i]['prize'];
}
$res['no'] = $pr;
echo json_encode($res);

何以笔者抽不到大奖?

在相当多近乎的抽取奖金活动中,参预者往往抽不到大奖,笔者从程序的角度举个例给你看,纵然笔者是抽取奖品活动的主办方,我设置了6个奖项,每一个奖项不相同的中奖可能率,假诺一等奖是一台高等汽车,但是笔者设置了在那之中奖可能率为0,那代表什么?那代表插手抽取奖金者无论怎么抽,永恒也得不到这台高等汽车。而当主办方每回翻动剩下的正方时,插手者会发掘一等奖恐怕就在刚刚抽取奖金的四方旁边的贰个数字下,都怪自个儿命局差。真的是天意差呢?其实际加入者翻动那个方块时前后相继已经决定了中奖项,而查看查看别的方块看到的奖项只是多少个烟雾弹,吸引了观者和参加者。笔者想看完那篇文章后,您恐怕会知晓TV节目中的翻板抽取奖品猫腻了,您或者大约再不会去机选双色球了。

您恐怕感兴趣的文章:

  • PHP基于递归算法消除兔子生兔子难点
  • PHP达成的猴王算法(猴子选大王)示例
  • php编写的抽取奖金程序中奖可能率算法
  • php中最简易的字符串相配算法
  • PHP优异算法集锦【特出收藏】
  • PHP面试常用算法(推荐)
  • php达成猴子选大王难点算法实例
  • php全排列递归算法代码
  • PHP完结的装箱算法示例

本文由金沙贵宾会官网发布于网络技术,转载请注明出处:适用于抽奖程序,PHP大转盘中奖概率算法与示例

关键词:

PHP中session共享和登录验证的实现方法,实现ses

先是验证的时候发生二个sessionid; 你或者感兴趣的篇章: PHP完结负载均衡下的session共用效应 用PHP达成多服务器分享S...

详细>>

php学习笔记,与多态性的用法

php教程 面向对象中接口与多态性的用法 ,接口的方法名是show,继承接口的类中必须有show这个方法,要不然就会报错...

详细>>

php数组与字符串的转移函数,php中拆分和整合字

explode最简便易行用法 大家先来看字符串调换来数组 字符组合 在本例中,大家将把字符串分割为数组: str_split()  代...

详细>>

php上传文件问题汇总,php上传文件常见问题总结

我们实现最简单的文件上传功能,只要利用php教程自带的move_uploaded_file函数就可以方便实现 把php上传文件时经常碰到...

详细>>