Факториал

From
Evgenij Masherov (2:5020/175.2)
To
Alexander Ivanchenko
Date
2002-11-27T20:17:02Z
Area
RU.ALGORITHMS
From: "Evgenij Masherov" <EMasherow@nsi.ru>

Wed Nov 27 2002 18:47, Alexander Ivanchenko wrote to All:


 AI> Есть число требуется найти факториал (пример 5=1*2*3*4*5), есть формула
 AI> считающая его в одну операцию (без циклов и.т.п.) ?


Существует формула Стирлинга
N!=sqrt(2*pi*N)*N^N/e^N*(1+1/(12*N)+1/(288*N^2)+...)
(последний сомножитель, как правило, опускают)
но она
а. Никогда не выдает целочисленное значение
б. Относительная ошибка ее стремится к нулю, но абсолютная возрастает.
в. При малых N велика и относительная ошибка

N       N!      S(N)            N!-S(N)         (N!-S(N))/N!      
1	1	0.922137009	0.077862991	0.077862991
2	2	1.919004351	0.080995649	0.040497824
3	6	5.836209591	0.163790409	0.027298401
4	24	23.50617513	0.493824867	0.020576036
5	120	118.019168	1.980832042	0.016506934
6	720	710.0781846	9.921815358	0.013780299
7	5040	4980.395832	59.60416839	0.011826224
8	40320	39902.39545	417.6045473	0.010357256
9	362880	359536.8728	3343.127158	0.009212762
10	3628800	3598695.619	30104.38126	0.00829596
11	39916800	39615625.05	301174.9494	0.007545067
12	479001600	475687486.5	3314113.527	0.006918794

Евгений Машеров АКА СанитарЖеня

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)