Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 число е   Michael Varamashvili   21 Oct 2002 15:46:44 
 число е   Sergey Mudry   21 Oct 2002 18:39:38 
 число е   Oleg V.Cat   21 Oct 2002 18:03:42 
 Re: число е   Alexey Krasnov   22 Oct 2002 09:29:44 
 число е   Michael Varamashvili   30 Oct 2002 22:13:08 
 Re: число е   Alexey Krasnov   31 Oct 2002 12:43:28 
Архивное /ru.algorithms/209462125f69.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional