Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > exp и Pi


Автор: fessko 25.6.2006, 00:51
Не могу создать тему в разделе алгоритмы.
Необходимо найти номер первой позиции после запятой, начиная с которой совпадают 5 цифр чисел е и пи. 
 

Автор: Хоббит 25.6.2006, 09:59
тебе придется строить свой алгоритм расчета чисел e и pi .... причем придется строить эти числа в строке или как то еще... так как точности double или чего еще тебе не хватит для этой задачи ...
Все эти числа можно считать через ряды. или через геометрические задачи
Pi находиться так площадь окружности Pi*r*r будет стремиться к площади n уголоьника (вписаного, описаного) при n -> в бесконечность
отсюда получаем pi

e можно получить из разложения в ряд тейлора экспонеты
получим

1 + (1/1!) + (1/2!) + (1/3!) + (1/4!) + (1/5!) + ... и так далее до нужной точности 

Автор: mr.DUDA 25.6.2006, 11:15
Алгоритмы вычисления e и pi с заданной точностью - тут:

http://algolist.manual.ru/maths/count_fast/pi.php
http://algolist.manual.ru/maths/count_fast/moreabout_e.php 

Автор: fessko 25.6.2006, 14:25
А можно ли не считать сами числа, ведь мне нужна только позиция. Мне не нужно все число.  

Автор: Хоббит 25.6.2006, 14:28
интересно... а как еще... если есть какой то еще очень сложный алгоритм???  врядли... придется считать 

Автор: mr.DUDA 25.6.2006, 14:51
fessko, эти числа тем и замечательны, что нельзя сразу определить цифру по заданной позиции - нужно считать, считать... 

Автор: fessko 25.6.2006, 15:45
Надо использовать арифметику неограниченной точности. Да еще с делением. ужас 

Автор: Хоббит 25.6.2006, 16:50
... мы будующи школьниками решали задачу просто... число записывали в строке .. и просто перегружали операторы которые эти строки могли делить умножать складывать получая строки............. в результате точность не ограничена... длина строки .. хоть 65535 символов... (щас строки еще больше делать моно) 

Автор: mr.DUDA 25.6.2006, 19:23
Хоббит, а ещё можно сохранять только значащие 8 цифр при вычислении... например, при делении 1 на факториал целого числа (как в ряде Тейлора), получаются числа, содержащие повторяющиеся 0,NNNNNN...N цифр и 0,NNNNNNN...Nxxxxxxxx  значащих цифр... Можно всё это представить в виде "столбика деления", как в школе - тогда вообще останутся лишь несколько строк и всё smile. А если оперировать двоичными дробями - то всё будет ещё проще, все операции будут над целочисленными 32-разрядными значениями (сдвиг и вычитание, как нас учили на курсе двоичной арифметики). 

Автор: Хоббит 25.6.2006, 21:26
а нам о представлении чисел с плавающей запятой в бинарном виде, только на 1 курсе рассказали.... как не справедливо... блин 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)