Codice PHP:
function unique_random($n,$tot){
srand ((double) microtime() * 1000000);
for ($i=1; $i<=$n;$i++){
$random[$i] = mt_rand (1,$tot);
echo "
$i : ".$random[$i];
echo "
". $i ."-> ".$random[$i-1]; /**/
if ($random[$i] == $random[$i-1] ){
$random[1]=$random[2]=0;
echo "
n ".$n;
echo "
tot ".$tot;
unique_random($n,$tot);
}
}
return $random;
}
$random = unique_random(2,4);
Un problema che presenta questo algoritmo e' che se trova due numeri uguali alla fine torna 0 cioe' l'inizializzazione dell'array.
Che ne pensate?
Come lo risolvereste?