Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Lowanie unikalnych liczb ala lotto
arsen99
post 25.10.2012, 08:02:19
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.10.2007

Ostrzeżenie: (0%)
-----


Witam

Szybkim wstępem napisze tylko, że po 4 latach w końcu na poważnie wziąłem się za nauke php i chyba będę tu częstym gościem smile.gif

Ok problem polega na wylosowaniu 6 niepowtarzalnych liczb z 49. Przedstawie mój sposób rozumowania, a ktoś mam nadzieje powie mi WHY (siedziałem wczoraj do 2 w nocy) to nie działa.


  1. for ($i = 0; $i <= 5; $i++) { //będzie 6 losowań
  2. $j = rand(1, 49); // jakaś pierwsza wylosowana liczba
  3.  
  4. $tablicaliczb[$i] = "$j"; // dla każdego losowania zapamiętujemy wylosowaną liczbę w tablicy aby móc potem porównać z nowo wylosowaną
  5.  
  6. if (in_array($j, $tablicaliczb)) { //sprawdzamy czy w już utworzonej tablicy jest nowo wylosowana liczba
  7. $i--; //jeżeli tam jest juz taka liczba, to odejmuję 1 od cyklu losowania, co spowoduje że losowanie z tym samym indexem się powtórzy
  8. }
  9. else // a jak liczby nie ma w tablicy to ją wyświetl
  10. echo "$j";
  11.  
  12. // print_r($tablicaliczb); oglądamy sobie tablice jeżeli mamy ochotę
  13. echo "<br>";
  14. }



No i co nie działa. Szczególnie podoba mi się warunek, że jak liczba znajduje się w tablicy, to odejmiemy 1 od $i, co spowoduje wrócenie dokładnie do tego samego losowania, bo najpierw odejmiemy jeden a potem doda sie 1, i znowu na przykład jesteśmy w 3 losowaniu.

Jak bym mógł poprosić o wskazanie błędu w tym rozumowaniu, widziałem inne rozwiązania, ale czemu to nie działa? U mnie ciągle wykonuje się "if" tak jak by warunek był ciągle poprawny, tak jak by losował ciągle liczbę która juz była wylosowana wcześniej sad.gif

Dzieki
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 21:49