Pagina 1 din 1

Repetarea generarii numerelor cu rand()

Scris: Mie Noi 07, 2012
de alves
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.

Repetarea generarii numerelor cu rand()

Scris: Mie Noi 07, 2012
de steell

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.

Repetarea generarii numerelor cu rand()

Scris: Sâm Noi 10, 2012
de archemorus
- 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.

Repetarea generarii numerelor cu rand()

Scris: Sâm Noi 10, 2012
de steell
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.