Autor | Zpráva | ||
---|---|---|---|
TomasJ Profil |
Zdravím, existuje v JS nějaká funkce Math objektu na faktoriál? Děkuji.
|
||
Sir Tom Profil |
TomasJ:
Také zdravím, ne - jenom toto: <script type="text/javascript"> function factorial(n) { if ((n == 0) || (n == 1)) return 1; else { result = (n * factorial(n-1) ); return result; } } </script> |
||
Martin02 Profil |
#3 · Zasláno: 20. 4. 2012, 21:39:38
Udělal jsem si to tedy v PHP, ne v JS, ale chtěl bych se zeptat: když udělám faktorial ze 17, vypíše mi to 3.55687428096E+14. Jde nějak udělat, aby s vypsalo celé číslo a ne to E+14?
Sice to už asi nepatří do této kapitoly, ale ještě se chci zeptat, když mi script píše Fatal error: Maximum function nesting level of '100' reached, aborting! in C:\Program Files\EasyPHP\www\factorial.php on line 12. Jistě to bude něco, že php nedokáže vykonat více než 100 funkcí najednou nebo tak něco. Jde toto nějak obejít? Třeba v nastavení php.ini nebo tak něco? děkuji moc |
||
Alphard Profil |
#4 · Zasláno: 20. 4. 2012, 21:49:28
Uvědomujete si, jak rychle roste faktoriál? Integer nemůže obsahovat čísla 3.5e14 apod. V PHP by snad mohlo pomoci http://cz2.php.net/manual/en/intro.bc.php
|
||
Nox Profil |
#5 · Zasláno: 20. 4. 2012, 21:58:45
Martin02:
Může, ale nemůže volat *rekurzivně* víc jak 100*. Případně bys mohl zagooglovat "memoization" ... zrovna faktoriál je u toho snad vždy jako vlajkový příklad *) resp. tohle číslo jde určitě nastavit v php.ini, ale moc bych do toho zase nevrtal ... jestli fakt chceš nějaké velké výpočty, tak PHP stejně není moc vhodná volba |
||
Časová prodleva: 12 let
|
0