Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Bardziej losowa losowość
thomson89
post 10.11.2009, 22:59:59
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Witam!

Chciałbym wiedzieć, jak zrobić bardziej losowe wybieranie liczby. Zazwyczaj używałem rand(), lecz teraz gdy mam do wylosowania 12 liczb w zakresie 1, 9 - czasami liczby się powtarzają...

Więc, jak w temacie: jak zrobić to bardziej losowe?


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
vokiel
post 10.11.2009, 23:14:22
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Cytat(thomson89 @ 10.11.2009, 22:59:59 ) *
(...) lecz teraz gdy mam do wylosowania 12 liczb w zakresie 1, 9 - czasami liczby się powtarzają...


Może ja czegoś nie zrozumiałem, ale jeśli masz liczby w zakresie 1-9 a losujesz ich 12, to jako, że 12-9=3 zatem przynajmniej 3 liczby się powtórzą.


--------------------
Go to the top of the page
+Quote Post
thomson89
post 10.11.2009, 23:15:53
Post #3





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


No a przy 5 liczbach?


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
black.old.cat
post 10.11.2009, 23:17:50
Post #4





Grupa: Zarejestrowani
Postów: 37
Pomógł: 8
Dołączył: 8.11.2009

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


Niestety nic wiecej nie jestem w stanie dla Ciebie zrobic, matematyki nie oszukam.
  1. <?php
  2. $tab = range(1,9);
  3. $tab[9] = rand()%10;
  4. do { $tab[10] = rand()%10; } while($tab[9] == $tab[10]);
  5. do { $tab[11] = rand()%10; } while($tab[9] == $tab[11] || $tab[10] == $tab[11]);
  6. shuffle($tab);
  7. foreach($tab as $a) echo $a.'<br>';
  8. ?>

Go to the top of the page
+Quote Post
thomson89
post 10.11.2009, 23:22:20
Post #5





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


A jak zmieniać ilość liczb w tym?


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
phpion
post 10.11.2009, 23:30:35
Post #6





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




Po najmniejszej lini oporu.
  1. $liczby = range(0, 9);
  2.  
  3. shuffle($liczby);
  4.  
  5. $losuj = array_chunk($liczby, 5); // 5 - tyle ma "wylosowac"
  6. print_r($losuj[0]);

Aczkolwiek nie zadowoli Cię mt_rand(1000, 9999) - dla liczb 4-cyfrowych?
Go to the top of the page
+Quote Post
thomson89
post 10.11.2009, 23:34:14
Post #7





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Nie rozumiem...

EDIT: Dzięki za pomoc!

Ten post edytował thomson89 10.11.2009, 23:42:55


--------------------
Sklep 70%
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:52