|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alexey Krasnov 2:5020/400 31 Oct 2002 12:43:28 To : Michael Varamashvili Subject : Re: число е --------------------------------------------------------------------------------
Здравствуйте, 30 октября 2002 г., 21:13:08, вы писали:
MV> MV>> А как можно сабж посчитать до любого знака, как можно точнее?
MV> AK> Считаешь ряд Тейлора для функции exp(1) используя арифметику длинных
MV> AK> чисел
MV> А как мне поделить да числа в 1000 знаков каждое? С мантисой?
Я сам вычислял е с точностью 12000 знаков шесть лет назад, на
спектруме 48к. Вот все, что смог вспомнить:
1. Пусть хотим вычислить с точностью до N знака после запятой.
2. Выделяем три массива по N+1 знака в каждом.
3. Ряд Тейлора:
e = 1 + 1/2! + 1/3! + ....
то есть вычисляем сумму, каждый новый член получается из
предыдущего так:
Xn+1 = Xn / (n+1)
Следовательно, в первом массиве накапливаем сумму, во втором храним
текущий член, в третьем вычисляем следующий член суммы.
4. Число представляется как обычная последовательность цифр. По цифре
на байт.
5. Для простоты умножаем и ряд и результат на 2^N. В первом байте
массива будет накапливаться целая часть, во всех остальных -
дробная.
6. Осталось реализовать две операции: сумму и деление.
Сумма вычисляется тривиально - столбиком, начиная с младшего
разряда.
7. Hам всегда требуется делить число 2^N на некоторое число, максимум
которого N. Делим обычным столбиком. Операция упрощается тем, что
"сносим" всегда нули и взятие остатка от очередного деления можно
выполнить уже в обычной 2-4 байтовой целочисленной арифметике.
Все прекрасно выполнялось на 8-битном ассемблере без аппаратного деления, в
условиях ограниченности ресурсов, так что я не думаю, что у тебя могут
возникнуть какие-либо проблемы с реализацией на каком-нибудь ЯВУ на PC.
===============
С уважением,
Алексей Краснов
krasnov[+]zeim.ru
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.Mail.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/209462125f69.html, оценка из 5, голосов 10
|