Факториал

From
Ilia Kantor (2:5020/175.2)
To
Alexander Ivanchenko
Date
2002-12-01T11:32:05Z
Area
RU.ALGORITHMS
From: "Ilia Kantor" <ilia@manual.ru>

Sat Nov 30 2002 08:37, Alexander Ivanchenko wrote to Ilia Kantor:


 AI>>> Хорошо, если нет способа вычисления одним выражением, как можно 
 AI>>> наиболее эффективно вычислить факториал, в расчёте на экономию
 AI>>> процессорного времени?
 IK>> Зачем ? В большинстве случаев достаточно вычислить логарифм
 IK>> факториала. Это делается одной простой формулой.

 AI> Какой формулой?
Вот приближение десятичного логарифма факториала:

#include <math.h>
double log10factorial(double n)
{
return((-log(902961561600.0)+log(2.0)/2.0+log(0.3141592653589793E1)/2.0
+log(902961561600.0*n*n*n*n*n*n*n+75246796800.0*n*n*n*n*n*n
+3135283200.0*n*n*n*n*n-2421135360.0*n*n*n*n-207204480.0*n*n*n
+707957280.0*n*n+62961828.0*n-534703531.0)-13.0/2.0*log(n)
+n*log(n)-n)/log(10.0));
}

 

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