Probabilmente si può fre anche in maniera più performante ma ho buttato giù la prima cosa che mi è venuta in mente:
Codice PHP:
<?php
function distributor($valueToDistrubute, $maxValue, $arrayDimension) {
$arr = array();
for ($i = 0; $i < $arrayDimension; $i++) {
if ($valueToDistrubute < $maxValue) {
$maxValue = $valueToDistrubute;
}
$value = rand(0, $maxValue);
$arr[] = $value;
$valueToDistrubute -= $value;
}
shuffle($arr);
return $arr;
}
$a = distributor(800, 100, 100);
for($i = 0; $i < 100; $i++) {
echo $i." - ".$a[$i]."<br/>";
}
?>