EULEROVO ČÍSLO

Číslo je definováno jako součet nekonečné řady:

E=1+1/FACT(1)+1/FACT(2)+1/FACT(3)+...+1/FACT(N)+...

, kde FACT je funkce pro výpočet faktoriálu.

IMPLEMENTACE
Jednotka: vnitřní funkce nebo vnější, ale pak bez procedure příkazu
 
Parametr: přirozené číslo P - počet platných číslic vypočteného čísla e, implicitně P = 9
 
Vrací: prvních P platných desítkových číslic čísla e
 


E: procedure
parse arg P
if P = "" then P = 9
Eps = 0.5 * 10 ** P
numeric digits P + 1
N = 1; D = 1
do J = 1
  N = J * N + 1; D = J * D
  if D >= Eps then return N / D
end

 

Hodnotu čísla e stačí vypočítat jen jednou s dostatečnou přesností. Uložíme-li ji do souboru na disku, pak lze vytvořit funkci, která "vypočte" číslo e s požadovanou přesností mnohem rychleji než funkce E. Jak se to dělá je popsáno v Technika: Předem vypočtené konstanty. Příkladem je následující funkce ECONST, kterou lze "vypočítat" prvních P platných číslic čísla e, pro P=1, ...,200.

 


ECONST: procedure; V = ''
V = V || 2.718281828459045235360287471
V = V || 35266249775724709369995957496
V = V || 69676277240766303535475945713
V = V || 82178525166427427466391932003
V = V || 05992181741359662904357290033
V = V || 42952605956307381323286279434
V = V || 90763233829880753195251019012
return V

 

Příkaz Euler = E(1000) vede na 450 provedení hlavního cyklu ve funkci E; trvá 1.28 sekundy.

SOUVISLOSTI


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

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