問題:2つの多項式の積を効率的に計算する。
解決策:
import numpy
from numpy.fft import fft, ifft
def poly_mul(p1, p2):
"""2つの多項式を掛ける。p1とp2は次数が増加する順序の係数の配列です。"""
deg1 = p1.shape[0] - 1
deg2 = p1.shape[0] - 1
# これが2*(deg1 + deg2) + 1で、次の2のべき乗が+1を処理します。
total_num_pts = 2 * (deg1 + deg2)
next_power_of_2 = 1 << (total_num_pts - 1).
jeremykun.com
Polynomial Multiplication Using the FFT
