Предположим , что мы имеем полиномы степени не более n , n > m , так что общее число ненулевых коэффициентов равно n (т. е. многочлены редки). Меня интересует эффективный алгоритм вычисления полинома:
Поскольку этот многочлен имеет степень не более , размер входных и выходных данных равен O ( n ) . В случае m = 1 мы можем вычислить результат, используя БПФ за время O ( n log n ) . Можно ли это сделать для любого m < n ? Если это имеет какое-то значение, меня интересует особый случай, когда коэффициенты равны 0 и 1, и вычисление должно выполняться по целым числам.
Обновить. Я понял, что быстрое решение для вышеупомянутого будет означать достижения в быстром умножении матриц. В частности, если , то можно считывать с я к б K J как коэффициент х я + n j в p k ( x ) . Таким образом, вычисление р К ( х ) 2 соответствует вычислению внешнего произведения двух векторов, и вычислению суммы Е к р К ( х ) 2 соответствует вычислению матрицы продукта. Если есть решениеиспользованием времени п ( п , м ) для вычисления Е к р К ( х ) 2 то мы можем умножить два п матрицаразмерностью N матриц в время F ( п 2 , п , что означает, что f ( n , m ) = O ( n log n ) для m ≤ n потребует серьезного прорыва. Но возможно, что f ( n , m ) = n ω / 2 , где ω - текущий показатель умножения матриц. Идеи, кто-нибудь?