php红包算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
    * @param $num
    * @param $total
    * @param int $range  差距是否大
    * @return array|int
    */
   private function randomSplit($num,$total,$range=1){
  
       if($num<2){
           return $total;
       }
  
       $div=array();
  
       $min=floor($total/$num-$range);
       $max=floor($total/$num+$range);
       for($i=0;$i<$num-1;$i++){
           $depart=mt_rand($min,$max);
           $div[]=$depart;
           $total-=$depart;
       }
       $div[]=$total;
       return $div;
  
   }

posted @ 2016-03-16 14:24  西糊涂炒番茄  阅读(162)  评论(0)    收藏  举报