![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 2 Dołączył: 24.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam, niestety w bibliotece bc nie ma czegos takiego jak bcrand.
Potrzebuje wylosowac liczbe z przedzialu 0 - x, gdzie x jest to liczba calkowita dodatnia zapisana jako string. Moze jakies podpowiedzi jak to najwydajniej zrobic w miare krotkim kodem ? I co wazne aby prawdopodobienstwo otrzymania dowolnej liczby bylo jednakowe dla calej puli liczb. Ten post edytował kufalo 24.08.2007, 08:40:37 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sprawa jest w sumie dość kłopotliwa - leżeli powiedzmy wiesz ile cyfr (powiedzmy xxxx) ma mieć dana liczba - to przechodzisz pętelką po wszystkich "miejscach cyfr" liczby (po iksach) i dla każdego losujesz cyferkę od 0 do 9. Ilość cyfr dziesiętnych też można losować, ale za słaby z rachunku prawdopodobieństwa jestem, żeby powiedzieć, czy liczba losowana w ten sposób (najpierw losujemy ilość cyfr, potem cyfry po kolei) jest tak samo "losowa" jak ta generowana powiedzmy funkcją mt_rand()...
Ten post edytował qqrq 23.08.2007, 15:29:52 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 2 Dołączył: 24.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
No wlasnie ten sposob jest dobry, ale tylko dla liczb x typu 9, 99, 99, 999
Jezeli przykladowo chce lowocac liczbe z przedzialu 0 - 800 to moge wylosowac Twoim sposobem liczbe z przedzialu 0 - 999, a potem reszte z przelenia (bcmod) przez gorna granice plus jeden. Niby dziala dobrze, ale prawdopodobienstwa wystapiania liczb nie sa jednakowe, poniewa np 0 osiagamy dla wylosowanego 0 oraz 801. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
No to wymóżdżyłem coś takiego:
Od razu mówię - to tak z głowy, nieprzetestowane, ale zasadę działania tego wszystkiego chyba widać. Pozdrawiam! -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 9 Dołączył: 3.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
trochę kiepsko w skrypcie @qqrq z prawdopodobieństwem
trochę lepiej będzie chyba z takim kodem:
ew. zabezpieczenia trzeba sobie dopisać... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 0 Dołączył: 27.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 09:49 |