当前位置: 代码迷 >> PHP >> 分发红包的算法
  详细解决方案

分发红包的算法

热度:60   发布时间:2016-04-28 17:43:36.0
求一个分发红包的算法
抢红包大家都玩过了,
就是给出一个总额,一个份数,就自动随机分配金额。

最小额0.01元。

求算法

function($总额,$红包个数){

。。。

return $红包数组;
}
------解决思路----------------------
改成这样可能好些
function distribute($total, $num) {
  $avg = $total / $num;
  $r = array_fill(0, $num, $avg);

  for($i=0; $i<$num; $i+=2) {
    $t = rand(1, $avg * 100) / 100;
    $r[$i] -= $t;
    if($r[$i] <= 0) $r[$i] = 0.01;
    $r[$i+1] += $t;
  }
  $r[$num-1] = $total - array_sum(array_slice($r, 0, -1));
  return $r;
}

  相关解决方案