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
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@Crozin:
Mam lekkiego bzika na punkcie Nesquika i optymalizacji wydajności kodów, więc pozwolę sobie nieco zmodyfikować Twój kod. Lepiej zamiast in_array() skorzystać z isset() i nieco zmienić sposób przechowywania wylosowanych liczb.
  1. $items = array();
  2.  
  3. do {
  4. $rand = mt_rand(0, 10000);
  5. //if (!in_array($rand, $items)) {
  6. if (!isset($items[$rand])) {
  7. //$items[] = $rand;
  8. $items[$rand] = TRUE;
  9. }
  10. } while (count($items) < 10);

Wypadałoby jeszcze pozbyć się tego count'a na rzecz zwykłego licznika, ale to już pozostawiam autorowi wątku w ramach treningu (IMG:style_emoticons/default/smile.gif)
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: 19.09.2025 - 04:02