все то же pi
- From
- Max Alekseyev (2:5015/60)
- To
- Sergey Voloshchuk
- Date
- 2002-11-06T19:08:44Z
- Area
- RU.ALGORITHMS
████ OS/2 Hi, Sergey !
Replying to a message of Sergey Voloshchuk to Илья Кантор:
SV> А по какому методу вычисляется пи в этой проге:
SV> long d; int b,a=10000,c=2800,g,e,f[2801];
SV> main(){
SV> for(;b-c;) f[b++]=a/5;
SV> for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
SV> for(b=c;d+=f[b]*(long)a, f[b]=d%--g,d/=g--,--b;d*=b);
======================================================
* Original in area RU.MATH
* From: Max Alekseyev 2:5015/60 21.07.1999 04:41:02
* To : Vitaly Lugovsky
* Subj: PI (3.141)
======================================================
Hi, Vitaly !
Replying to a message of Vitaly Lugovsky to Andrey Kuznetsov:
VL> А как такая формУла?
Замечу, что автором приведенной программы на C является Dik T. Winter из CWI. Кстати, в оригинале ее текст состоит ровно из 160 символов.
VL> ---------------
VL> long d;
VL> int b,a=10000,c=2800,g,e,f[2801];
VL> main()
VL> {
VL> for(;b-c;) f[b++]=a/5;
VL> for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
VL> for(b=c;d+=f[b]*(long)a, f[b]=d%--g,d/=g--,--b;d*=b);
VL> }
VL> --------------
VL> 2All: кто нить может объяснить алгоритм, я вот сколько не бился,
VL> смысла не понял. Но ведь считает же, гадина!!!
Вот эквивалентная (более прозрачная) программа на паскале:
===cut===
var b,g:integer;
f:array[1..2800] of integer;
const e:integer=0;
d:longint=0;
a=10000;
c:integer=2800;
procedure print4(x:integer);
var s:string;
begin
Str(x:4,s); while pos(' ',s)>0 do s[pos(' ',s)]:='0';
write(s);
end;
begin
for b:=1 to c do f[b]:=a div 5;
while c>=0 do
begin
d:=0;
for b:=c downto 2 do
begin
inc(d,f[b]*a); g:=2*b-1; f[b]:=d mod g; d:=d div g;
d:=d*b;
end;
dec(c,14); print4(e+d div a); e:=d mod a;
end;
end.
===cut===
Из нее следует, что Pi здесь считается по формуле
oo i!
Pi = 2 * Sum --------
i=2 (2i-1)!!
Сходимость у нее - геометрическая, что довольно неплохо.
ЗЫ. Раньше я эту формулу нигде не встречал. Может, кто-нибудь подскажет откуда у нее ноги растут?
Regards, °°
Max ~
==================== End of Forward ====================
======================================================
* Original in area RU.MATH
* From: Wladislaw Tchernov 2:5025/2.91 07/22/1999 00:28:01am
* To : Max Alekseyev
* Subj: de seriebus calculandis
======================================================
Ave Max!
04:41 Mercuri die 21 Julii 1999 a.D.,
Max Alekseyev scripsit ad Vitaly Lugovsky:
MA> oo i!
MA> Pi = 2 * Sum --------
MA> i=2 (2i-1)!!
MA> откуда у нее ноги растут?
IMHO, из разложения арксинуса
\sum_{k=0}^\infty \frac{(k)!^2}{(2k)!}=
\frac{4}{4-x^2}+4x(4-x^2)^{-3/2}\arcsin(x/2),
в немже надо положить x=\sqrt{2}
с уважением
слава:
==================== End of Forward ====================
Regards, °°
Max ~
--- FleetStreet 1.27.3.8
* Origin: (2:5015/60)