Autor Zpráva
BuGeR
Profil
Zdravím..
Přemýšlel jsem, a napsal jsem tuto funkci:
function cislo() {
	return ((rand(1,100) == 50) ? 50 : cislo());
}
echo cislo(); // Vrací okamžitě 50

Zajímá mě, jakto, že funkce vratí ukamžitě číslo 50, bez jakéhokoliv načítání stránky..
Když si to tak trochu rozeberete, tak ta funkce se musí strašně hodněkrát opakovat, dokud nenajde to číslo (nehledě na to, kdybych tam dosadil tisíce, či miliony, načítaní by trvalo stejně možná maximalně tak sekundu)..
Jak je tedy možné, že tento skript, se načte okamžitě v prohlížeči?
Děkuju, b :)
puzzle
Profil
Pokud vím tak script funguje pouze určitou dobu a pokud v té době nenajde 50 tak se ukončí bez toho čísla....
DJ Miky
Profil
Těch opakování není zase tolik, aby se to za tak krátkou dobu nestihlo. Zkoušel jsem to narychlo změřit, 1000 opakování té tvé funkce mi trvá okolo jedné milisekundy (tzn. za sekundu by jich mohlo být cca milion). A 1000 opakování bez problémů stačí na nalezení čísla, u kterého je pravděpodobnost 1:100.
BuGeR
Profil
Dobře, takže v tom není nic jiného než jen zkoušení toho čísla (?) :)
Jinak..musíte také brát k úvahu, že ty čísla se můžou opakovat (např: 10, 20, 10, 50).
Ale i tak, děkuju :)
puzzle
Profil
ano je to náhodné vybírání čísel, takže 100% pravděpodobnost, že se vybere číslo 50 neni
Keeehi
Profil
BuGeR:
Při tisíci opakování je pravděpodobnost, že ani jednou nepadne 50 0,0043%. (teda pokud jsem dobře počítal)
Při milionu opakování (což by trvalo sekundu) mi vychází tak malá pravděpodobnost, že už mi to ani kalkulačka nebere a ukazuje 0%. Poslední co zvládne je 22681 opakování a píše mi to pravděpodobnost 1,00426*10^-99. Myslí, že pro představu to stačí.
BuGeR
Profil
puzzle:
Dobře, něco takového jsem čekal, děkuju moc! :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0