Ich möchte wissen, welcher Algorithmus für die Multiplikation von zwei n-stelligen Zahlen am schnellsten ist. Platzkomplexität kann hier gelockert werden!
21
Ich möchte wissen, welcher Algorithmus für die Multiplikation von zwei n-stelligen Zahlen am schnellsten ist. Platzkomplexität kann hier gelockert werden!
Antworten:
Fürers Algorithmus von Martin Fürer hat ab sofort eine Zeitkomplexität von die Fouriertransformationen über komplexe Zahlen verwendet. Sein Algorithmus basiert auf Schönhages und Straßens Algorithmus, der eine zeitliche Komplexität vonnlog(n)2Θ(log∗(n)) Θ(nlog(n)log(log(n)))
Andere Algorithmen, die schneller sind als der Multiplikationsalgorithmus der Grundschule, sind die Karatsuba-Multiplikation mit einer zeitlichen Komplexität von ≈ O (n ^ {1,585}) und der Toom 3-Algorithmus mit einer zeitlichen Komplexität von Θ (n ^ {1,465})O ( n 1,585 ) Θ ( n 1,465 )O(nlog23) O(n1.585) Θ(n1.465)
Beachten Sie, dass dies die schnellen Algorithmen sind. Das Finden des schnellsten Algorithmus für die Multiplikation ist ein offenes Problem in der Informatik.
Verweise :
quelle
Beachten Sie, dass die von avi aufgelisteten FFT-Algorithmen eine große Konstante hinzufügen, was sie für Zahlen unter Tausenden + Bits unpraktisch macht.
Neben dieser Liste gibt es noch einige andere interessante Algorithmen und offene Fragen:
quelle