Der Schönhage-Strassen Multiplikation Algorithmus arbeitet durch Multiplikationen der Größe Drehen in viele Multiplikationen Größe mit einer zahlentheoretischen Transformation und recursing. Zumindest denke ich, dass es das ist, weil es eine andere Klugheit gibt und ich es wirklich nicht gut genug verstehe, um es genau zusammenzufassen. Es endet in der Zeit .
Eine zahlentheoretische Transformation ist genau wie eine diskrete Fourier-Transformation , außer dass sie im endlichen Feld von ganzen Zahlen modulo . Dies macht die Operationen viel billiger, da die Fourier-Transformation viel mit den Wurzeln der Einheit multipliziert wird und die Wurzeln der Einheit von alle Potenzen von 2 sind, so dass wir uns einfach verschieben können! Ganzzahlen sind außerdem viel einfacher zu verarbeiten als komplexe Gleitkommazahlen.
Was mich verwirrt, ist, dass sehr groß ist. Wenn ich Ihnen ein zufälliges Element aus gebe , sind Bits erforderlich, um es anzugeben. Das Hinzufügen von zwei Elementen sollte also dauern . Und die DFT fügt viel hinzu.
Schönhage-Strassen teilt die Eingabe in Gruppen mit Bits auf. Diese Gruppen sind die Werte von , die transformiert werden. Jeder Durchgang der DFT hat Additionen / Subtraktionen, und es gibt Durchgänge. Basierend auf der Addition, die Zeit benötigt, scheinen die Kosten für all diese Additionen , was asymptotisch dasselbe ist wie .
Wir können es ein bisschen besser machen ... weil die Werte so klein anfangen, sind die Ergänzungen ziemlich spärlich. Die Hinzufügung des ersten Durchgangs kostet wirklich nur jeweils , und der zweite Durchgang kostet jeweils , und der i-te Durchgang kostet jeweils, aber das ergibt immer noch alles einen schrecklichen .
Wie macht Schönhage-Strassen die Ergänzungen billig? Wie viel kosten sie insgesamt?
Liegt es daran, dass der Algorithmus tatsächlich (wobei garantiert eine Potenz von 2 ist)? Es gibt genug gestapelte und Deutsch in der Zeitung, dass ich mir wirklich nicht sicher bin. Andererseits denke ich nicht, dass dies genug Wurzeln der Einheit garantiert, damit die Dinge klappen können.