Problema numere aleatoare cu functie recursiva

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
cga
Mesaje:4

Problema numere aleatoare cu functie recursiva

Am scris o functie si nu stiu unde e pct slab probabil ceva de logica.

Cod: Selectaţi tot

<?php
        function randsel(){
            $tab=array(1,3,5,7);
                        do{
                        $n=rand(1,10);
                            if($n!==(list($index, $val)=each($tab))){
                    $tabgen[]=$n;
                    $lungime = sizeof($tabgen);
                }
                
                else{
                      randsel();
                }
            }
                while($lungime <= 5);
            if($lungime==5) return;                
            return $tabgen;    
}
$nr[]=randsel();
echo $nr."<br />";
?>
Vreau sa generez 6 numere aleatoare dintr-un interval in afara de unele (tot din acel interval), acestea (care nu le vreau) fiind intr-un tablou definit de mine.
Daca ma puteti ajuta, functia are parametrii reali direct in ea , asa am vrut-o nu se face asa dar asa am vrut eu.

Avenirer Mesaje:4
Vad ca vrei sa faci "echo" la un array, ceea ce iti va fi imposibil.
Inteleg ca vrei sa pastrezi codul tau, dar totusi eu as fi facut asa:

Cod: Selectaţi tot

<?php
function randsel()
{
$tab=array(1,3,5,7); // numerele pe care nu le vreau
$lungime = 0; // definesc lungimea sirului de numere incepand de la 0;
do{
    $n=rand(1,10); // caut un numar random de la 1 la 10
    if(!in_array($n, $tab))   // daca numarul $n nu se afla in array-ul definit de mine in $tab, atunci voi procesa informatia
    {
        $tabgen[]=$n;    // adaug numarul in array-ul tabgen
        $lungime++;     // si incrementez cu 1 $lungime
    }
}
while($lungime <= 5);         // totul va rula atata timp cat $lungime este mai mica sau egala cu 5
return $tabgen;     // cand $lungime <= 5 returnez array-ul $tabgen
}
$nr=randsel();     // chem functia, returnandu-mi-se un array ce va fi stocat in variabila $nr
foreach($nr as $numar)
{
  echo $numar.'<br />';     // pentru fiecare numar din array voi afisa numarul si <br />
}
?>
Puteam sa mai elimin cateva linii din cod, dar am vrut sa fiu cat mai aproape de codul tau.

cga Mesaje:4
Nu ca as fi asa "egoist", dar vreau sa imi vad buba, numai asa poti ajunge la "genunchiul broastei".

Subiecte similare