DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 03. 02. 2006.   #1
bokacbl
profesionalac
Professional
 
Avatar bokacbl
 
Datum učlanjenja: 09.01.2006
Lokacija: Banja Luka
Poruke: 262
Hvala: 24
7 "Hvala" u 5 poruka
bokacbl is on a distinguished road
Pošaljite ICQ poruku za bokacbl
Default rand i mt_rand pitanje..

pitanje u vezi razlike ove dvije php funkcije:

rand i mt_rand..

naime procitao sam na php.net-u o obema funkcijama i vidio sam da je sintaksa ista a da mt_rand bolje generise random vrijednosti

e sad me interesuje s obzirom da sam radio neku skriptu koja dosta koristi rand funkciju, da li mogu nastati neki problemi ako promjenim
rand u mt_rand u kompletnoj skripti??

Hvala
bokacbl je offline   Odgovorite uz citat
Staro 03. 02. 2006.   #2
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Ne, neces imati problema, osim sto sam ja ukapirao da je PHP random funkcija jako losa. Pogledaj temu o generisanju 2 miliona unique kodova. Vec posle 1000 random stringova od 8 karaktera pocinje da duplira a neki kodovi su se vec posle 5000 generisanih kodova pojavili i po 10 puta.

Ne znam koliko ti je bitno to, ako nije previse onda mozes slobodno sa mt_rand().
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 03. 02. 2006.   #3
bokacbl
profesionalac
Professional
 
Avatar bokacbl
 
Datum učlanjenja: 09.01.2006
Lokacija: Banja Luka
Poruke: 262
Hvala: 24
7 "Hvala" u 5 poruka
bokacbl is on a distinguished road
Pošaljite ICQ poruku za bokacbl
Default

Citat:
Originalno napisao bluesman
Ne, neces imati problema, osim sto sam ja ukapirao da je PHP random funkcija jako losa. Pogledaj temu o generisanju 2 miliona unique kodova. Vec posle 1000 random stringova od 8 karaktera pocinje da duplira a neki kodovi su se vec posle 5000 generisanih kodova pojavili i po 10 puta.

Ne znam koliko ti je bitno to, ako nije previse onda mozes slobodno sa mt_rand().
Ma znam ja sam to primjetio na jednostavnom primjeru da izabere random vrijednost izmedju 1-20.. i on je u 15 random vrijednosti imao po 2 duple..
veoma lose pogotovo ukoliko je random veoma bitan u okviru skripte..

ok hvala na odgovoru onda cu samo u svojim funkcijama da zamjenim rand sa mt_rand..
bokacbl je offline   Odgovorite uz citat
Staro 03. 02. 2006.   #4
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Bojane, neke razlike između rand() i mt_rand() sam dao u ovom unosu.

[edit]Izmenio sam link pošto nije pokazivao na pravi post. bluesman[/edit]
__________________
Python Ambassador of Serbia

Poslednja izmena od bluesman : 03. 02. 2006. u 23:57.
Petar Marić je offline   Odgovorite uz citat
Staro 04. 02. 2006.   #5
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

Citat:
Originalno napisao bokacbl
Ma znam ja sam to primjetio na jednostavnom primjeru da izabere random vrijednost izmedju 1-20.. i on je u 15 random vrijednosti imao po 2 duple..
veoma lose pogotovo ukoliko je random veoma bitan u okviru skripte..
U principu ovo sto pominjes nije uopste pokazatelj kvaliteta generatora, sasvim je prihvatiljivo da na tako malom uzorku dobijes takve rezultate..zato se i zovu slucajni brojevi sto ne znas da li su neki duplirani ili su svih 15 vrednosti isti broj

ono u cemu se ogleda los kvalitet php generatora (i vecine drugih ugradjenih u kompajlere) je sto vrednosti krecu da konvergiraju ka nekoj vrednosti relativno brzo (ali relativno brzo znaci nesto tipa par hiljada iteracija), odnosno nemaju vise svi brojevi istu verovatnocu (iliti uniformnu raspodelu) nego se vrednosti bliske jednom broju pojavljuju cesce...

Ako kreiras kratke sekvence brojeva (tipa 15 ili 100), onda te taj problem ne brine, onda je glavna frka sto random seed nije dovoljno random (nisam 100% siguran, ali cini mi se da php koristi microtime za to, znaci broj izmedju 0 i milion). U tom slucaju, ako si na unixu mozes da probas da kao seed koristis /dev/urandom da pokupis slucajnu vrednost iz sireg opsega...
__________________
Leadership is the art of getting people to want to do what you know must be done.

Poslednja izmena od ivanhoe : 04. 02. 2006. u 03:56.
ivanhoe je offline   Odgovorite uz citat
Staro 04. 02. 2006.   #6
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Pa zavisi, mt_rand koristi algoritam koji baš i neće da počne da konvergira brzo
Citat:
Originalno napisao Petar Marić
Ako želiš ekstremno dug period probaj Mersenne Twister algoritam, baš smo ga spominjali iz numerike na predavanjima - poznat je po tome što ima monstruozan period od 2^19937-1 u svojoj osnovnoj verziji.
Off Topic: Da, znam da sam počeo samog sebe da citiram. Ima li ko problema u vezi toga?


A pošto mi je u virtuelnoj mašini dignut MATLAB, odlučih da proverim koliko je Mersenne Twister algoritam u stvari jak:
Kôd:
>> broj_jedinstvenih = length(  unique( randint(1, 2e6, 2^32) )  )
broj_jedinstvenih =
     1999511

>> broj_duplih = 2e6 - broj_jedinstvenih
broj_duplih =
   489

>> broj_duplih_procenti = broj_duplih / 2e6 * 100
broj_duplih_procenti =
    0.0245

>>
Mislim da 0.0245% dupliranih slučajnih brojeva i nije tako loše
__________________
Python Ambassador of Serbia

Poslednja izmena od Petar Marić : 04. 02. 2006. u 04:49.
Petar Marić je offline   Odgovorite uz citat
Staro 04. 02. 2006.   #7
zextra
Boris
Grand Master
 
Avatar zextra
 
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
zextra is on a distinguished roadzextra is on a distinguished road
Default

Isti procenat koji smo dobili nakon testova u perlu ako se ne varam... 0.024-0.025..
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams
zextra je offline   Odgovorite uz citat
Staro 04. 02. 2006.   #8
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Šta da kažem - MT algoritam je zakon za ovakve stvari

Ipak je pametno što imamo numeriku na računarstvu, ma šta god neke kolege pričale
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 04. 02. 2006.   #9
zextra
Boris
Grand Master
 
Avatar zextra
 
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
zextra is on a distinguished roadzextra is on a distinguished road
Default

Off Topic: Za sve moze da se nadje primena, samo zavisi od interesovanja da li ces nesto uciti ili neces...
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams
zextra je offline   Odgovorite uz citat
Staro 04. 02. 2006.   #10
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

Citat:
Originalno napisao Petar Marić
Pa zavisi, mt_rand koristi algoritam koji baš i neće da počne da konvergira brzo

nece, mt_rand je ok, jer on koristi Mersenne Twister...i ne samo to nego je i dosta brzi od obicnog rand-a......ono sto sam ja pricao se odnosi na standardne rand generatore koji se oslanjaju na libc funkcije za to (a dobar deo kompajlera to koristi po defaultu...), oni nisu dobri za kreiranje duzih sekvenci rnd brojeva...
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
SEO - URL Pitanje Zizi Marketing i SEO 14 17. 07. 2009. 16:42
jos jedan flickr-rand-images experiment ivanhoe Linkovi 0 17. 02. 2009. 00:19
CSS pitanje mirko75 Sva početnička pitanja 2 02. 06. 2008. 00:01
PDO pitanje McChoban PHP 3 31. 08. 2007. 10:40
Pitanje ? Ivan Opušteno 10 17. 07. 2006. 11:00


Vreme je GMT +2. Trenutno vreme je 13:10.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.