概率抽奖函数

<?php

       function probability($prize) {
//return rand(0,6);

$probability_all = array(0,0);
foreach($prize as $i=>$val) {
list($title,$desc,$money,$probability) = $val;
$probability_all[0] += $probability[0];
$probability_all[1] += $probability[1];
}
if ( empty($prize) ) {
return -1;
}

       //print_r($prize);exit;


$probability_all[1] = intval($probability_all[1] / count($prize));


$yes = mt_rand(1,$probability_all[1]);


//$prize = -1;
if ( $probability_all[0] <= 0 || $probability_all[1] <= 0 || $yes > $probability_all[0] ) {
} else {
$list = array();
$add = 0;
$total = 0;
foreach($prize as $i=>$val) {
list($title,$desc,$money,$probability) = $val;
if ( $probability[0] <= 0 ) {
continue;
}
$total = $add += $probability[0];
$list[$add] = $i;
}


$yes = mt_rand(1,$total);
foreach ($list as $k => $v) {
if ( $yes <= $k ) {
$prize = $v;
break;
}
}
}
return $prize;
}


function roundq($p) {
if($p==1)
{
$a=-18;
$b=18;
}
else
{
$a=($p-1)*36;
$b=$a+36;
}
return mt_rand($a,$b);
}


   $prize[] = array('一等奖', 'iphon6s', 1,  array(0,1000) );
$prize[] = array('二等奖', '200积分', 2, array(50,1000) );
$prize[] = array('三等奖', '花奇楠手串', 3, array(10,1000) );
$prize[] = array('四等奖', '再接再厉', 4, array(350,1000) );
$prize[] = array('五等奖', '雕花茶盘', 5, array(1,1000) );
$prize[] = array('六等奖', '50张云购券', 6, array(39,1000) );
$prize[] = array('七等奖', '皇宫椅', 7, array(0,1000) );
$prize[] = array('八等奖', '10张云购券', 8,  array(100,1000) );
$prize[] = array('九等奖', '10夺木币', 9,  array(100,1000) );
$prize[] = array('十等奖', '继续努力', 10,  array(350,1000) );




 $res=probability($prize);
 echo $res;
 echo '<br>';
 $result=roundq($res);
 echo $result;
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值