Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wątpliwośći co do tasowania tablicy
mastermindssj2
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 21.06.2011

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


Próbuję napisać skrypt, który będzie losował 6 liczb z puli 48. Tym razem liczby nie mogą się powtarzać. Losowanie na zasadach dużego lotka. Wczoraj opisywałem problem z funkcją rand() (skrypt kończył działanie na ~16k pętli). Postanowiłem spróbować rozwiązać problem przy użyciu funkcji shuffle() w odniesieniu do tablicy. Skrypt wykonuje za każdym razem dokladnie 32768 pętli po czym zwraca true. Czy to wynika z ograniczeń funkcji shuffle() czy może ogólnego mechanizmu tasowania wartości losowych w PHP. Proszę drogich użytkowników o pomoc.

Oto kod skryptu

  1. <?php
  2. $pula = range(1,48);
  3. shuffle($pula);
  4. $liczby = array();
  5. for ($i = 0; $i <= 5; $i++)
  6. {
  7. $liczby[$i] = array_pop($pula);
  8. }
  9. echo "Wylosowane liczby to: ";
  10. sort($liczby);
  11. foreach ($liczby as $val)
  12. {
  13. echo "$val ";
  14. }
  15. echo "<br />";
  16. $liczby2 = array();
  17. $ilosc = 0;
  18. while ($liczby != $liczby2)
  19. {
  20. $pula2 = range(1,48);
  21. shuffle($pula2);
  22. for ($i = 0; $i <= 5; $i++) {
  23. $liczby2[$i] = array_pop($pula2); }
  24. sort($liczby2);
  25. echo "Wylosowano: ";
  26. foreach ($liczby2 as $val) {echo "$val ";}
  27. echo "--losowanie nr $ilosc<br /> \n";
  28. $ilosc++;
  29. }
  30. ?>
Go to the top of the page
+Quote Post

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 Aktualny czas: 20.08.2025 - 09:10