Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Losowanie liczb...
Forum PHP.pl > Forum > Przedszkole
Web-Fifi
Mam taki problem:

Mam sobie jakąś liczbe, dajmy na to 130, ta liczba to punkty, mam kilka zmiennych. Np:

bramkarz,obronca,atak

chce żeby każdej ze zmiennej przyporządkowano jakąś przypadkową wartość, jednak aby suma tych trzech zmiennych nie przekroczyła 130 (liczby punktów), a każda jedna zmienna nie przekroczyła 100 pkt.

Myślałem troche nad tym, szukałem na forum ale nie moge na nic "wpaść". Czy Wy macie jakies pomysły ?
strife
rand(); ?

Czyli generalnie mozesz ustawic zakres kazdej zmiennej na 43,3 wtedy nie przekroczy, aczkolewiek wiem o co Ci chodzi. Jesli ktorys z zawodnikow wylosuje 130 to pozostalym przypadnie 0. Maly zarys:

  1. <?php
  2.  
  3. $zakres = 130;
  4.  
  5. $losuj_1 = rand(0, $zakres);
  6. $losuj_2 = rand($losuj_1, $zakres);
  7. $losuj_3 = rand($losuj_2, $zakres);
  8.  
  9. echo $losuj_1.'<br />';
  10. echo $losuj_2.'<br />';
  11. echo $losuj_3.'<br />';
  12.  
  13. $suma = $losuj_1 + $losuj_2 + $losuj_3;
  14. echo $suma;
  15.  
  16. ?>


Nie mam pojecia czy to dziala, wymyslilem w glowie... Ale mysle ze powinno.

Pozdrawiam!
Web-Fifi
Dzięki za zarys, własnie to miałem na myśli musze teraz pokombinować żeby wartośći wszystkich zmiennych nie przekraczały 130 a każda jedna 100.

Pozdrawiam.

edit:

Zrobiłem coś taiego ale nie zabardzo działa.
  1. <?php
  2. $zakress = 130;
  3. $zakres = 100;
  4.  
  5. function print_n()
  6. {
  7. $b = rand($losuj_0, $zakres);
  8. $a = rand($losuj_1, $zakres);
  9. $o = rand($losuj_2, $zakres);
  10. $s = rand($losuj_3, $zakres);
  11. $p = rand($losuj_4, $zakres);
  12. $ag = rand($losuj_5, $zakres);
  13.  
  14. $suma=$b + $a + $o + $s + $p + $ag;
  15.  
  16.  
  17. }
  18.  
  19. if($suma<=&#092;"$zakress\"){
  20.  
  21. echo $b.'<br />';
  22. echo $a.'<br />';
  23. echo $o.'<br />';
  24. echo $s.'<br />';
  25. echo $p.'<br />';
  26. echo $ag.'<br />';
  27. }
  28.  
  29. if($suma>&#092;"$zakress\"){
  30. print_n();
  31. }
  32. ?>
Jawor
Witam napisałem coś takiego:

  1. <?
  2.  
  3. $stala = '130';
  4.  
  5. $los1 = rand(0, 100);
  6.  
  7. $a = $stala - $los1;
  8.  
  9. $los2 = rand(0, $a);
  10.  
  11. $los3 = $stala - $los1 - $los2;
  12.  
  13. echo ''.$los1.'<br />';
  14. echo ''.$los2.'<br />';
  15. echo ''.$los3.'<br />';
  16.  
  17. $suma = $los1 + $los2 + $los3;
  18.  
  19. echo '<br /><b>Suma: '.$suma.'</b>';
  20.  
  21. ?>


Wszystko powinno działać jak chciałeś poza tym, że nie ogranicza aby liczba nie była większa od 100 ...
Web-Fifi
Wszystko by było ok... ale własnie, ja podałem dla przykładu 3 pola, a tych pól ma być sporo więcej wiec wszystko wydaje się mało pratyczne sad.gif Ale dzięki za dobre chęci, ja jeszcze próbuje coś tam porobić z moim pomysłem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.