Самый быстрый алгоритм вычисления больших многочленов

Довольно общий вопрос, каков самый быстрый (с точки зрения временной сложности) алгоритм вычисления полиномов от 400 до 500.

Заранее спасибо.


person Noor    schedule 09.12.2009    source источник
comment
Это чертовски многочлен.   -  person ChaosPandion    schedule 10.12.2009
comment
Возможно, вам придется расширить вопрос. Какого рода вклад вы ожидаете? Какой язык? И т.д...   -  person ChaosPandion    schedule 10.12.2009
comment
Я бы тоже спросил на mathoverflow.com.   -  person Georg Schölly    schedule 10.12.2009
comment
Какой тип данных? Если вы имеете дело со значениями с плавающей запятой, вам также необходимо учитывать численную стабильность.   -  person Josef Grahn    schedule 10.12.2009
comment
Название вашего вопроса предполагает умножение более одного многочлена, а не вычисление одного. Проблема умножения эффективно решается преобразованиями Фурье и свертками.   -  person Phil Miller    schedule 10.12.2009


Ответы (2)


Если вы говорите об оценке многочленов, вы, вероятно, не можете быть быстрее, чем линейное время Схема Хорнера - за исключением особых обстоятельств.

Если вы говорите об умножении полиномов, алгоритм Карацубы довольно прост в реализации и довольно быстро для такого размера. Я считаю, что алгоритмы, основанные на быстром преобразовании Фурье, имеют смысл использовать только в том случае, если у вас есть полиномы большего размера.

person Hans-Peter Störr    schedule 09.12.2009
comment
+1 для Хорнера ... намного лучше, чем мой первый взгляд (как всегда). - person Jason Punyon; 10.12.2009
comment
Хорнер не только быстр, но и устойчив к некоторым ошибкам потери точности, которые могут мешать действительно наивным подходам. - person dmckee --- ex-moderator kitten; 10.12.2009

Модифицированные версии быстрых преобразований Фурье (БПФ) обычно дают очень хорошие результаты для такого рода проблем. Взгляните на этот документ, в котором предлагается используя гибридный подход БПФ. Я бы начал ваше исследование с поиска терминов типа «быстрое одномерное БПФ». Также может быть полезно отметить, что умножение двух многочленов по сути является той же операцией, что и умножение двух целых чисел.

person John Feminella    schedule 09.12.2009