на школьную страницу...

Вычисление числа π

Вычисление числа π - одно из любимых развлечений математиков. Имеется множество методов его вычисления. Есть очень эффективные и сложные, есть более простые и короткие.

Рекорд краткости принадлежит, по всей видимости следующей программе (160 символов):

int a=10000,b,c=2800,d,e,f[2801],g;main(){for(;b-c;)f[b++]=a/5; 
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a, f[b]=d%--g,d/=g--,--b;d*=b);}

В таком виде программу читать неудобно, перепишем её в более удобном виде:

int a=10000, b, c=2800, d, e, f[2801], g;

main(){
    for(;b-c;)f[b++]=a/5;  //заполняет массив значением a/5 = 2000

    for(;                  // начальных значений нет
        d=0,g=c*2;         // условие выполнения цикла: с!=0
        c-=14,printf("%.4d",e+d/a),e=d%a
    )   for(b=c;  d+=f[b]*a, f[b]=d%--g,d/=g--,--b;  d*=b);
}
После работы эта программа выдает ответ (800 цифр):
3141592653589793238462643383279502884197169399375105820974944592307816406286208
9986280348253421170679821480865132823066470938446095505822317253594081284811174
5028410270193852110555964462294895493038196442881097566593344612847564823378678
3165271201909145648566923460348610454326648213393607260249141273724587006606315
5881748815209209628292540917153643678925903600113305305488204665213841469519415
1160943305727036575959195309218611738193261179310511854807446237996274956735188
5752724891227938183011949129833673362440656643086021394946395224737190702179860
9437027705392171762931767523846748184676694051320005681271452635608277857713427
5778960917363717872146844090122495343014654958537105079227968925892354201995611
2129021960864034418159813629774771309960518707211349999998372978049951059731732
8160963185
Точное значение числа π при равно:
3.141592653589793238462643383279502884197169399375105820974944592307816406286208
9986280348253421170679821480865132823066470938446095505822317253594081284811174
5028410270193852110555964462294895493038196442881097566593344612847564823378678
3165271201909145648566923460348610454326648213393607260249141273724587006606315
5881748815209209628292540917153643678925903600113305305488204665213841469519415
1160943305727036575959195309218611738193261179310511854807446237996274956735188
5752724891227938183011949129833673362440656643086021394946395224737190702179860
9437027705392171762931767523846748184676694051320005681271452635608277857713427
5778960917363717872146844090122495343014654958537105079227968925892354201995611
2129021960864034418159813629774771309960518707211349999998372978049951059731732
8160963185950244594553469083026425223082533446850352619311881710100031378387528
то есть все полученные цифры являются верными.

Истоки программы уходят в глубокую древность, неизвестно точно, кто её автор. Некоторые исследователи приписывают её авторство знаменитому Ходже Насреддину, другие - Дику Т.Винтеру. Интересующиеся могут уточнить этот вопрос у специалистов-профессионалов, например, на историческом факультете ИвГУ.


Flag Counter