简易 红包生成

<?php 
error_reporting(E_ALL || ~E_NOTICE);
Header("content-type:text/html;charset=utf8");
// // $list 是反回的数组    
// $list = array(5,5,5,10,10,10); //红包数组

// echo "当前红包还剩:"; var_dump($list);
// echo "<hr>";
// $arr =array_rand($list);  //从红包中随机取出一个
// // var_dump($arr);

//  echo "抽到红包为".$list[$arr];  //输出取出的值
//  unset($list[$arr]);  // 从红包数组中删除这个红包
// echo "<hr>";
// echo  "当前红包还剩:";   var_dump($list);


// echo "<hr>";

function hongbao($total,$n){
    if($total/$n<1){
        for($x=1;$x<=$n;$x++){
            $min = intval($total*100/$n/$n); //红包取值的最小值 ,和平均值相关,跨度为一个相度固定值 ;
            if($x ==1){
                $a= rand($min,intval($total*100/$n)); 
                $res = $total*100-$a;
                $s = $a/100;
                echo "第{$x}份红包为1:{$s}<br>";
            }elseif($x ==$n){
                $res = $res/100;
                echo "第{$x}份红包为1:{$res}<br>";
            }else{
                $a = rand($min,intval($res/($n-$x)));
                $res = $res-$a;
                $s = $a/100;
                echo "第{$x}份红包为1:{$s}<br>";
            }
        }
    }else{

        for($x=1;$x<=$n;$x++){
            $min = intval($total/$n/$n); //红包取值的最小值 ,和平均值相关,跨度为一个相度固定值 ;    
            if($x ==1){
                $a= rand($min,intval($total/$n)); 
                $res = $total-$a;
                echo "第{$x}份红包为:{$a}<br>";
            }elseif($x ==$n){
                echo "第{$x}份红包为:{$res}<br>";
            }else{
                $a = rand($min,intval($res/($n-$x)));
                $res = $res-$a;
                echo "第{$x}份红包为:{$a}<br>";
            }    
        }
    }
}

hongbao(5,10);  //平均分值 不能小于0.01 

?>

 

posted on 2016-02-02 16:36  lightblue_sky  阅读(271)  评论(0编辑  收藏  举报

导航