Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Lowanie unikalnych liczb ala lotto
arsen99
post
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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/sad.gif)

Dzieki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




$tablicaliczb[$i] = "$j";
if (in_array($j, $tablicaliczb))

Najpiero dodajesz liczbę do tablicy a potem sprawdzasz czy ona w tej tablicy jest a następnie się dziwisz że jest..... brak słów że tak powiem.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 17:52