Vynikající aproximaci hodnoty
FACT(N) objevil James Stirling v 18. století. Program
STIRLING využívá právě jeho slavný vzorec.
STIRLING: procedure
parse arg N, P
Pi = PI(P); E = E(P)
Sqrt2pin = SQRT(2 * Pi * N, P)
return,
Sqrt2pin * (N / E)**N * (1 + 1 / (12 * N))
|
PŘÍKLAD
Funkce FACT(10) vypočte hodnotu 3628800, zatímco STIRLING(10) vrací přibližnou hodnotu 3628684.7
Čím je číslo N větší, tím je odhad daný Stirlingovým vzorcem přesnější.
FACT(108001) vrací (v numeric digits 32 nastavení)
8.1428599075279953478037134061743E+496713 po 1.56 sekundách
STIRLING(108001,32) vrací
8.1428599075255713876213611726275E+496713 po 0.02 sekundách
Mimochodem, Kalkulačka ve Windows 2000 (PC 130MB RAM, 500MHz) zobrazí 8.1428599075279953478037134061347E+496713 po (asi) 900 sekundách (15 minutách)
SOUVISLOSTI