|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Max Alekseyev 2:5015/60 06 Nov 2002 20:08:44 To : Sergey Voloshchuk Subject : все то же pi -------------------------------------------------------------------------------- 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> смысла не понял. Hо ведь считает же, гадина!!! Вот эквивалентная (более прозрачная) программа на паскале: ===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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/18133dc968bd.html, оценка из 5, голосов 10
|