2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Алгоритм Шёнхаге-Штрассена для умножения целых чисел
Сообщение13.11.2009, 13:00 
Я намеренно продублирую своюже тему, ввиду что там розмышления ушли далеко в сторону и я нехочу им мешать.

Так вот у меня походу дела возник вопрос, зачем там применяеться преобразование фурьэ, там написано что это уменьшит количество умножений, но я както непонимаю всёже принципа роботи этого финта ушами. Может ктото обяснить поподробней?

 
 
 
 Re: Алгоритм Шёнхаге-Штрассена для умножения целых чисел
Сообщение13.11.2009, 13:30 
Аватара пользователя
Преобразование Фурье применяется для вычисления свертки (convolution). Дело в том, что операция свертки при применении преобразования фурье переходит в операцию покмпонентного умножения.
То есть получается вот что:
Если тупо вычислять свертку по формулам, то получится $\sim n^2$ операций.
Если сначала применить FFT ($\sim n\log n$), потом покомпонентно перемножить ($n$), а потом применить обратное FFT($\sim n\log n$), то операций будет $O(n\log n)$.

В алгоритме Ш-Ш для целых чисел свертка отрицательно обернутая, она вычисляется похожим образом, просто векторы коэффициентов умножаются на некоторые весовые векторы. (у Фюрера это называется Half-FFT)

 
 
 
 Re: Алгоритм Шёнхаге-Штрассена для умножения целых чисел
Сообщение13.11.2009, 14:13 
А можете дать ссылку на книгу где этот Half-FFT нормально описан, ато тупо влоб закодить что написано у меня почемуто неполучаеться.

 
 
 
 Re: Алгоритм Шёнхаге-Штрассена для умножения целых чисел
Сообщение14.11.2009, 01:42 
Аватара пользователя
Ну можете еще второй том Кнута посмотреть.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group