Originariamente inviato da marketto
con numeri interi positivi:
codice:
$somma=0;
$temp=array();
for ($i=0;$i<4;$i++){
$temp[$i]=rand(1,100-$somma-10);
$somma+=$temp[$i];
}
$temp[4]=100-$somma;
$somma=0;
foreach($temp as $valore){
$somma+=$valore;
echo $valore."
\n";
}
echo "somma: $somma";
se metto 100 ho numeri negativi e in piu' la somma non la fa corretta
codice:
$max = 100;
$subs = 20;
$intv = $max / $subs;
$lottery = Array();
$tsum = 0;
for( $a = 0, $b = ( $subs - 1 ); $a < $b; $a++ ) {
$num = rand( 1, ( $intv + ( $intv / 2 ) ) );
$tsum += $num;
array_push( $lottery, $num );
}
array_push( $lottery, ( $max - $tsum ) );
var_dump( $lottery );
pero' come noterai l'ultimo valore e' sempre molto grande rispetto gli altri ...