把一个整数随机折分?比如把100随机折分20分,20分加起来必须等于100
$all=100;
/***
*all 要分配的总数
*times 要分配的次数
*max 分配能够达到的最大值
*min 分配的最小值
*
*先采用用户的分配‘最大值’,如果这个分配值大于当前剩余的总数,那这个最大值也就没有意义,就直接用当前剩余的最大值作为参考
*/
function distribution($all,$times="",$max="",$min=0){
if($times=="")return 0;
if($max==""){$max=$all;}
$num=(int)$times;
for($i=0;$i<$num;$i++){
if($max>$all){$max=$all;}
$tmp=mt_rand($min,$max);
$result[]=$tmp;
$all-=$tmp;
echo $tmp."<br>";
}
return $result;
}
$res=distribution($all,20,5,0);
echo array_sum($res);

浙公网安备 33010602011771号