Autor | Zpráva | ||
---|---|---|---|
kvoky Profil |
#1 · Zasláno: 19. 10. 2008, 11:31:44
Potřeboval bych nějakou funkci v php která mi vygeneruje náhodné desetinné číslo od 0 do 0.999999... stejně jako Math.random() v JS.
Díky |
||
panther Profil |
#2 · Zasláno: 19. 10. 2008, 11:38:49 · Upravil/a: panther
kvoky
v PHP je funkce rand(), která však vrací jen celá čísla. Pokud se smíříš s nějakým konečným počtem desetinných míst, řešil bych to asi následovně: $cislo = rand(0,999999999) / 1000000000 |
||
kvoky Profil |
#3 · Zasláno: 19. 10. 2008, 11:41:09
TO mě taky napadlo... no tak jestli to jinak nejde... použiju
Díky |
||
BetaCam Profil |
#4 · Zasláno: 19. 10. 2008, 11:48:29
panther
„v PHP je funkce random“ no to nevim, ale v které verzi PHP je funkce random?? Já vim tedy jen o funkcích rand() a mt_rand() |
||
panther Profil |
#5 · Zasláno: 19. 10. 2008, 11:54:08
BetaCam
jasně, překlep :-) Samozřejmě jsem myslel rand.. přemýšlím jinde nad JS :-) Opraveno i výše. A díky za opravu |
||
BetaCam Profil |
#6 · Zasláno: 19. 10. 2008, 12:07:26
kvoky
Jinak by se dalo použít například : $rand = (float)('0.'.mt_rand()); nebo function random(){ $rand = mt_rand(); return $rand/(pow(10, strlen($rand))); } Ovšem o čistotě hlavně prvního způsobu se dá dost polemizovat. |
||
BetaCam Profil |
#7 · Zasláno: 19. 10. 2008, 12:23:07
kvoky
Mimochodem teď mě napadlo ještě trochu elegantnější řešení a to je použití funkce na to přímo určené. : $rand = lcg_value(); |
||
_es Profil |
#8 · Zasláno: 19. 10. 2008, 12:32:34
rand()/(getrandmax()-1) //interval <0, 1) rand()/getrandmax() //interval <0, 1> |
||
nightfish Profil |
#9 · Zasláno: 19. 10. 2008, 12:33:26 · Upravil/a: nightfish
když už tu padly různé metody, tak třeba ještě
$randVal = mt_rand()/mt_getrandmax(); EDIT: hmmm, nějak jsem zaspal zdá se |
||
panther Profil |
#10 · Zasláno: 19. 10. 2008, 12:35:25
BetaCam
„Mimochodem teď mě napadlo ještě trochu elegantnější řešení a to je použití funkce na to přímo určené.“ ne trochu elegantnější, ale bezpochyby nejelegantnější :-) |
||
king26 Profil |
#11 · Zasláno: 19. 10. 2008, 22:48:26 · Upravil/a: king26
nebo treba neco podobnymu tomudle?
$pocet_mist=5; $cislo="0."; for($i=1;$i<=$pocet_mist;$i++) $cislo.=rand(0,9); |
||
Časová prodleva: 16 let
|
0