Quero saber qual algoritmo é mais rápido para a multiplicação de dois números de n dígitos? A complexidade do espaço pode ser relaxada aqui!
21
Quero saber qual algoritmo é mais rápido para a multiplicação de dois números de n dígitos? A complexidade do espaço pode ser relaxada aqui!
Respostas:
Atualmente, o algoritmo de Fürer de Martin Fürer possui uma complexidade temporal de que utiliza transformadas de Fourier sobre números complexos. Seu algoritmo é realmente baseado no algoritmo de Schönhage e Strassen, que tem uma complexidade de den log( N ) doisΘ (log∗ ( n ) ) Θ (nlog( N ) log( log( n ) ) )
Outros algoritmos que são mais rápidos que o algoritmo de multiplicação da escola primária são a multiplicação de Karatsuba, que possui uma complexidade de tempo de ≈ e de algoritmo Toom 3, que possui complexidade de tempo deO ( nregistro23) O ( n1,585) Θ ( n1.465)
Observe que esses são os algoritmos rápidos. Encontrar o algoritmo mais rápido para multiplicação é um problema em aberto na Ciência da Computação.
Referências :
fonte
Observe que os algoritmos FFT listados por avi adicionam uma constante grande, tornando-os impraticáveis para números menores que milhares + bits.
Além dessa lista, existem outros algoritmos interessantes e perguntas em aberto:
fonte