|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Sergey Voloshchuk 2:5020/400 06 Nov 2002 16:03:05 To : €«мп Љ в®а Subject : Re: все то же pi -------------------------------------------------------------------------------- > Ок. Дело в том, что вычисление pi до 50000 знака и до миллиардного > принципиально различаются. > Самые лучшие формулы для этого - видимо, формула Чудновского и > модифицированное арифметико-геометрическое сечение. Однако для миллиарда > знаков тебе нужно реализовать умножение длинных чисел через теоретико-числовое > преобразование, причем с кучей фишек для того, чтобы оно давало терпимый > результат, а деление - методом Hьютона-Рафсона с улучшениями Карпа(тут можно > не так стараться - оно 1 раз делается). > А по какому методу вычисляется пи в этой проге: long d; int b,a=10000,c=2800,g,e,f[2801]; 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]*(long)a, f[b]=d%--g,d/=g--,--b;d*=b); Я долго смотрел на нее как баран но ничего не понял :-( Самое странное, что она вычисляет его частями по четыре цифры, при этом они берутся из первых цифр дробной части (во как!) какого-то выражения... (Кстати, здесь ошибка: неинициализированные переменные должны быть проинициализированы нулем) --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6577bd2c648c.html, оценка из 5, голосов 10
|