微信红包算法和微信抽奖

微信红包

header("content-type:text/html;charset=utf-8");

$sum = 10;  //总价钱

$num = 8 ;  //人数

$min = 0.01;    //最少值

for($i=1;$i<$num;$i++){

    $row = ($sum-($num-$i)*$min)/($num-$i);// 安全值

    $money = mt_rand($min*100,$row*100)/100;

    $sum -= $money;

    echo ''.$i.'人,领取'.$money.'元,剩下'.$sum.'<br/>';

}

echo ''.$num.'人,领取'.$sum.'元,剩下'.$sum.'';
 
微信抽奖
function get_rand($arr){
    $arr_sum = array_sum($arr);
    $arr_rand = mt_rand(1,$arr_sum);
    foreach($arr as $key => $arr_num){
        $arr_sum -= $arr_num;
        if($arr_rand>$arr_sum){
            return $key;
        }
    }
}
$p = array(
    '0' => array('id'=>1,'info'=>'一等奖','v'=>1),
    '1' => array('id'=>2,'info'=>'二等奖','v'=>5),
    '2' => array('id'=>3,'info'=>'三等奖','v'=>10),
    '3' => array('id'=>4,'info'=>'四等奖','v'=>34)
    );
foreach($p as $key => $value){
    $arr[$value['id']] = $value['v'];
}
$rid = get_rand($arr);
$res['yes'] = $p[$rid-1]['info'];
unset ($p[$rid-1]) ;
shuffle ($p);
for($i=0;$i<count($p);$i++){
    $pr[]= $p[$i]['info'];
}
$res['no'] = $pr;
var_dump($res);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值