Re: все то же pi
- From
- Sergey Voloshchuk ()
- To
- Илья Кантор
- Date
- 2002-11-06T15:03:05Z
- Area
- RU.ALGORITHMS
From: "Sergey Voloshchuk" <sww.kedr@overta.ru>
> Ок. Дело в том, что вычисление pi до 50000 знака и до миллиардного
> принципиально различаются.
> Самые лучшие формулы для этого - видимо, формула Чудновского и
> модифицированное арифметико-геометрическое сечение. Однако для миллиарда
> знаков тебе нужно реализовать умножение длинных чисел через
теоретико-числовое
> преобразование, причем с кучей фишек для того, чтобы оно давало терпимый
> результат, а деление - методом Ньютона-Рафсона с улучшениями Карпа(тут
можно
> не так стараться - оно 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)