FAKTORIÁL

IMPLEMENTACE
Jednotka: vnitřní funkce nebo vnější, ale pak bez procedure příkazu
 
Parametry: přirozené číslo N>=0
 
Vrací: hodnotu FACT(N)=1*2*...*N
 


FACT: procedure
parse arg N
F = 1
do J = 2 to N; F = F * J; end
return F

 

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


Obálka Obsah Index Hlavní stránka Rexx   Mail

změněno 30. července 2001
Copyright © 2000-2001 Vladimír Zábrodský, RNDr.