Repetarea generarii numerelor cu rand()

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

Repetarea generarii numerelor cu rand()

Salut,
Doresc sa fac un script pentru un test si nu prea reusesc. Deci am 2 numere pe care le genereaza cu rand(). Problema este ca numai anumite numere trebuiesc generate pentru ca scriptul sa fie corect.
Cum pot face ca generarea numerelor sa se repete pana suma celor 2 numere este egala cu o anumita suma?
De exemplu am asa:

Cod: Selectaţi tot

$a = rand(1,10);
$b = rand(1,10);
$suma = $a + $b;
if($suma==10){
 echo "Suma este corecta";
}else{
 echo "Suma nu este corecta";
} 
 

Si as vrea sa stiu daca se poate repeta generarea numerelor pana este corect.

steell Mesaje:190

Cod: Selectaţi tot

<?php
$a = rand(1,10);
$b = rand(1,10);
$suma = $a + $b;

while ($suma != 10){
  $a = rand(1,10);
  $b = rand(1,10);
  $suma = $a + $b;
  if ($suma == 10) {
    echo $a.'+'.$b.'='.$suma;
  }
  else {
    echo 'suma incorecta<br />';
  }
}
?>
Dai refresh mereu in pagina sa vezi de cate ori se repeta instructiunea pana gaseste cele 2 cifre ce dau suma 10. L-am facut astfel incat sa arate cele 2 cifre si suma lor cand este egala cu 10, tu poti sa-l modifici cum vrei.

archemorus Mesaje:29
- steel - si daca presupunem ca suma celor doua numere intamplator este cea cautata inca din primele 3 linii, ai observat ca nu afiseaza nimic?
- alves - ,ce ti-a propus "steel" este foarte bun, dar fara primele 3 linii.
Have a nice day!
Desenele Copilariei http://www.desenele-copilariei.ro
Bancuri Haioase http://www.haiosul.ro

steell Mesaje:190
Corect. iIn script mai intai returneaza suma numerelor si apoi am pus while(). Daca gaseste din prima suma 10 nu mai apeleaza while().
Corect e asa:

Cod: Selectaţi tot

<?php
while ($suma != 10){
  $a = rand(1,10);
  $b = rand(1,10);
  $suma = $a + $b;
  if ($suma == 10) {
    echo $a.'+'.$b.'='.$suma;
  }
  else {
    echo 'suma incorecta<br />';
  }
}
?>
Am observat ca nu a afisat nimic, dar nu am bagat de seama.