<?php
class Red extends CI_Controller{
public function rand()
{
$money = (float)$this->input->get('money');
$num = (int)$this->input->get('num');
$ret = [];
$p_money = 0;
for ($i = $num; $i > 0; $i--) {
$p = $this->rand_money($money - $p_money, $i);
$ret[] = $p;
$p_money += $p;
}
$ret_arr = [];
for ($i= 0;$i<$num;$i++){
$p = array_rand($ret);
$ret_arr[] = $ret[$p];
unset($ret[$p]);
}
$this->success_message(['money'=>$ret_arr]);
}
public function rand_money($money, $num)
{
if ($money == 0) return 0;
if ($num == 1) return round($money, 2);
if ($money <= $num * 0.01) {
return 0.01;
}
$money *= 100;
return round(rand(1, $money - ($num - 1)) / 100, 2);
}
}
这是基于ci的代码
结果:
{
"status": 1,
"msg": "success",
"data": {
"money": [
0.06,
0.19,
0.03,
0.68,
0.04
]
}
}