Pagina 1 din 1

Problema numere aleatoare cu functie recursiva

Scris: Joi Mar 14, 2013
de cga
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.

Problema numere aleatoare cu functie recursiva

Scris: Joi Mar 14, 2013
de Avenirer
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.

Problema numere aleatoare cu functie recursiva

Scris: Joi Mar 14, 2013
de cga
Nu ca as fi asa "egoist", dar vreau sa imi vad buba, numai asa poti ajunge la "genunchiul broastei".