lo script seguente dovrebbe fare le seguenti cose:
- generare un numero random e sottrarlo all numero 30
- valutare se il valore assoluto della sottrazione e maggiore di 40
- se il risultato è maggiore di 39 rilanciare il processo di generazione del numero random e rifare la sottrazione (ricorsivamente)
- inoltre dovrebbe contare e istanzare in $numero_tentativi il numero di volte che il processo deve essere reiterato per soddisfare la condizione "abs($diff) < 40"
- restituire sia il valore del numero random che rispetta la condizione "abs($diff) < 40" che il numero di iterazioni.
A volta la funzione non restituisce niente mentre non restituisce MAI il numero di iterazioni. Come mai?
<?
$numero_tentativi = 0;
$y = 30;
function val_distanze($y_old){
$new_random = rand(0, 576);
$diff = $y_old - $new_random;
if(abs($diff) < 40){
val_distanze($y_old);
$numero_tentativi++;
}
else {
return $new_random . " / " . $numero_tentativi;
}
}
echo val_distanze($y);
?>