Длинная арифметика :)

Тема в разделе "WASM.ZEN", создана пользователем Dart_Bobr, 11 май 2005.

  1. Dart_Bobr

    Dart_Bobr New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    100
    Адрес:
    Ukraine
    Блин, наверное немного не там искал, но не могу найти быстрых алгоритмов для реализации функций для длинных чисел (типа синус, косинус и т.д.). Единственное что мне пришло в голову - разложить в ряд Тейлора, но это по-моему самый глупый и медленый способ. Кто-то знает какие-то другие?
     
  2. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Я знаю! Использование fpu.

    Там есть все основные тригонометрчиеские функции и некоторые дополнительные.
     
  3. Loger

    Loger New Member

    Публикаций:
    0
    Регистрация:
    28 авг 2003
    Сообщения:
    71
    Адрес:
    Minsk
    Dart_Bobr

    Самый быстрый способ - поиск в таблице. Но точность будет очень маленькая (или таблица большая)

    Немного медленее, но гораздо точнее вычисление с помощью FPU

    Если точности FPU окажется мало (хотя я не представляю себе задачу, где нужна такая точность), то только ряд Тейлора



    см. также: http://algolist.manual.ru/maths/count_fast/sincos.php

    З. Ы. можешь посмотреть, как реализовано в GMP
     
  4. Loger

    Loger New Member

    Публикаций:
    0
    Регистрация:
    28 авг 2003
    Сообщения:
    71
    Адрес:
    Minsk
    Есть, правда, ещё один способ

    вычисляешь tan(pi/2<sup>n</sup>), например, с помощью Mathematica с нужной точностью

    а потом используешь формулы

    tan(x+y)=(tan(x)+tan(y))/(1-tan(x)*tan(y))

    tan(2*x)=2*tan(x)/(1-tan(x)<sup>2</sup>)

    находишь tan(pi/2<sup>n-1</sup>), tan(pi/2<sup>n-2</sup>), ... и через них потом выражаешь tan(требуемого угла)
     
  5. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Dart_Bobr







    Ты имеешь ввиду "много" знаков после запятой? Какая именно точность тебе нужна?
     
  6. Dart_Bobr

    Dart_Bobr New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    100
    Адрес:
    Ukraine
    Точность до нескольких миллионов знаков после запятой :)

    Просто в универе мега проэкт взялся писать (конечно не в одиночку :)). Что-то типа маткада. Поэтому точность fpu по-моему немного скромновата для такой цели.
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257




    Что-то говорит мне, что такие алгоритмы стоят пропорционально количеству знаков после запятой, и так просто в сети они не валяются :)
     
  8. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    для быстрого вычисления синусов/косинусов существует принцип Птолемея.

    алгоритмы быстрого сложения,умножения длинных чисел можно

    сделать на китайской теореме об остатках.

    и в чем собственно геморрой?
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Dart_Bobr







    Эмм... Как бы тебе сказать... :) Ты уже договорился с хозяевами компьютерного парка в Силиконовой долине о предоставлении сети для демонстрации дипломной работы? :))))
     
  10. nobody

    nobody New Member

    Публикаций:
    0
    Регистрация:
    8 сен 2004
    Сообщения:
    32
    Адрес:
    Afghanistan
  11. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    А чем не устраивает разложить в ряд Тейлора. По-моему мнению это должно быть самым быстрым способою так, как Факториал вазрастает гараздо круче степенной функции.
     
  12. Dart_Bobr

    Dart_Bobr New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    100
    Адрес:
    Ukraine
    slow

    Кроме этих функций есть еще парочка других - типа експоненты, логарифма, вот собственно и гемморой :dntknw:

    Pavia

    Э-э-э, а причем здесь факториал? Мне бы метод побыстрее...

    nobody

    Thanks, щас почитаю :))
     
  13. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    Pavia





    Угу, особенно если учесть что степенная функция будет вызываться для аргумента меньше единицы :)



    Dart_Bobr





    Факториал появляется при оценке ошибки в ряде Тейлора, т.е при вычислении количества нужных слагаемых.



    slow





    А можно описание этого принципа или ссылку на него? А то я про такой первый раз слышу и найти тоже не могу :dntknw:
     
  14. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Блейхут

    "Быстрые алгоритмы цифровой обработки сигналов"

    (около 6мб, в Сети есть много ссылок)

    Введение



    и вообще советую эту книгу
     
  15. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Dart_Bobr

    Алгоритмы CORDIC
     
  16. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Quantum :)))