Припустимо , що ми маємо поліноми ступеня не більше , , так що загальна кількість ненульових коефіцієнтів дорівнює (тобто поліноми рідкі). Мене цікавить ефективний алгоритм обчислення полінома:
Оскільки цей многочлен має ступінь не більше , розмір вводу та виходу становить . У випадку ми можемо обчислити результат, використовуючи FFT за час . Чи можна це зробити для будь-якого ? Якщо це має якусь різницю, мене цікавить особливий випадок, коли коефіцієнти дорівнюють 0 і 1, а обчислення слід робити через цілі числа.O ( n ) m = 1 O ( n log n ) m < n
Оновлення. Я зрозумів, що швидке рішення для вищезазначеного означатиме досягнення швидкого множення матриці. Зокрема, якщо ми можемо прочитати як коефіцієнт в . Таким чином, обчислення відповідає обчисленню зовнішнього добутку двох векторів, а обчислення суми відповідає обчислення матричного добутку. Якщо для обчислення є рішення, що використовує час то ми можемо помножити дві -by- матриць на час a i k b k j x i + n j p k ( x ) 2 p k ( x ) 2 ∑ k p k ( x ) 2 f (, що означає, що для потребує значного прориву. Але , де є поточним показником множення матриці, можливо. Ідеї, хтось?