Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja losująca, losowanie wielokrotne
jam09
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 19.01.2010

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


Hej
Proszę o pomoc, chciałbym wylosować 10 liczb ze 100. Mógłbym użyć funkcji rand(), ale czasami zdarzają się powtórzenia liczb np. 10 i 10. Jak mógłbym uniknąć powtórzeń ? Z góry dzięki za pomoc.

Ten post edytował jam09 22.01.2011, 19:50:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jaka jest maksymalna pula? Jeżeli jest to 100, 1 000 czy 10 000 możesz najpierw wygenerować sobie te wszystkie elementy po czym z nich wylosować 10:
  1. $range = range(1, 10000);
  2. $items = array_rand($range, 10);
Możesz też po prostu losować liczbę i sprawdzać czy takowa nie została już wylosowana:
  1. $items = array();
  2.  
  3. do {
  4. $rand = mt_rand(0, 10000);
  5. if (!in_array($rand, $items)) {
  6. $items[] = $rand;
  7. }
  8. } while (count($items) < 10);
Sposobów jest cała masa...
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: 3.10.2025 - 15:03