Fast Fourier Transform, Algorithms, Pattern Matching, Convolution, Combination Sum.
10^x in the below diagram. import random for n in range(10, 300, 1): p = random.randint(10**n, 10**(n+1)) q = random.randint(10**n, 10**(n+1)) print(n, p, q) %timeit -n 10 -r 10 fft_multiply(p, q) %timeit -n 10 -r 10 multiply(p, q) print() Also note that in the FFT algorithm, we have a requirement