70 likes | 209 Views
Projekt 4. Multiplikation großer Zahlen mit Standard-FFT Matthias Hochsteger, e0627568. Die Aufgabenstellung. Gegeben sind 2 natürliche Zahlen der in b- adischer Darstellung:. Gesucht ist das Produkt dieser Zahlen in b- adischer Darstellung:. Aufwand:.
E N D
Projekt 4 Multiplikation großer Zahlen mit Standard-FFT Matthias Hochsteger, e0627568
Die Aufgabenstellung Gegeben sind 2 natürliche Zahlen der in b-adischer Darstellung: Gesucht ist das Produkt dieser Zahlen in b-adischer Darstellung: Aufwand: Dieses Cauchy-Produkt kann auch als Faltung interpretiert werden!
Der Algorithmus Lösung: Verwendung des Faltungssatzes // Eingabe: 2 Vektoren x,y der Länge n=2^i, wobei die Einträge x[n/2]...x[n-1] 0 sein müssen, // um keinen Überlauf zu erzeugen // Ausgabe: Vektor z mit z=x*y ( *...Faltung ) z=fastMultiply(x, y, n) { x1 = fft(x); y1 = fft(y); for(int i=0; i<n; i++) { z1[i] = x1*y1; } z = round(ifft(z1)); // Auf Integer Runden for(int i=1; i<n; i++) { z[i]+=z[i-1]/b; // Überträge weitergeben z[i-1] %= b; // Nun liegt z[i-1] in {0,...,b-1} } return z; }
Fehlerabschätzung Bei der Berechnung treten komplexe Gleitpunktzahlen auf. Der Gesamte Fehler darf beim Runden zum Schluss 0.5 nicht überschreiten! Ziel: Sinnvolle Abschätzungen für den Gesamtfehler