Je veux savoir quel algorithme est le plus rapide pour la multiplication de deux nombres à n chiffres? La complexité de l'espace peut être détendue ici!
21
Je veux savoir quel algorithme est le plus rapide pour la multiplication de deux nombres à n chiffres? La complexité de l'espace peut être détendue ici!
Réponses:
L'algorithme de Fürer de Martin Fürer a désormais une complexité temporelle de qui utilise des transformées de Fourier sur des nombres complexes. Son algorithme est en fait basé sur l'algorithme de Schönhage et Strassen qui a une complexité temporelle de Θ ( n log ( n ) log ( log ( n ) ) )nlog(n)2Θ(log∗(n)) Θ(nlog(n)log(log(n)))
D'autres algorithmes qui sont plus rapides que l'algorithme de multiplication des écoles primaires sont la multiplication de Karatsuba qui a une complexité temporelle de ≈ et l'algorithme Toom 3 qui a une complexité temporelle deO ( n 1.585 ) Θ ( n 1.465 )O(nlog23) O(n1.585) Θ(n1.465)
Notez que ce sont les algorithmes rapides. Trouver l'algorithme le plus rapide pour la multiplication est un problème ouvert en informatique.
Les références :
la source
Notez que les algorithmes FFT répertoriés par avi ajoutent une grande constante, ce qui les rend peu pratiques pour des nombres inférieurs à des milliers + bits.
En plus de cette liste, il existe d'autres algorithmes intéressants et des questions ouvertes:
la source