Multiplikation großer Zahlen mit Standard-FFT

Slides:



Advertisements
Ähnliche Präsentationen
Abschlussprüfung an Realschulen
Advertisements

Fast Fourier Transformation
Thema: Algorithmusdesignverfahren Vu Hoang Lam IMN04 HTWK-Leipzig Obersemminar Softwareentwicklung.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Sortierverfahren Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Algorithmus Teilziel: Begriff des Algorithmus verstehen.
Funktionen.
WHILE - Anweisung.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung.
Felder sortieren. Aufgabe: Die Zahlen eines Feldes sollen der Größe (zuerst die kleinste Zahl) nach sortiert werden.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
DO...WHILE Anweisung.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Rechneraufbau & Rechnerstrukturen, Folie 1.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 1.
Beispiele für Gleichungssysteme
Klausur „Diskrete Mathematik II“
Problemstellung Berechne die Summe der Quadrate aller natürlichen Zahlen bis zu einer vorgegebenen Zahl (bspw. 100)! Oder mathematisch: Berechne.
Uebung 01 ANN mit MATLAB.
DVG Gaußscher Algorithmus1 Gaußscher Algorithmus.
Gaußscher Algorithmus
Bestimmung des ggT zweier Zahlen
Rekursion Richard Göbel.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Effiziente Algorithmen
Rechnen im Binärsystem
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Die Woche im Überblick Grosse Projekte in Java Java 1x1 JavaKara Kara.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Polynome und schnelle Fourier-Transformation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Die Zählschleife int s = 0 for (int k=1; k
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Christian Mansky Design - Fallstudien Christian Mansky
Fraktale & Komplexe Zahlen
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 2 Dr. W. Narzt u. Dr. A. Stritzinger.
Kapitel 6: Suchbäume und weitere Sortierverfahren
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Zahlen, die nur durch 1 oder durch sich selbst teilbar sind, nennt man Primzahlen. Die 1 ist keine und die 2 ist die einzige gerade Primzahl.
Folie 1 §21 Das Produkt von Matrizen (21.1) Definition: Für eine (m,n)-Matrix A und eine (n,s)-Matrix B ist das (Matrizen-) Produkt AB definiert als (21.2)
Diskrete Mathematik I Vorlesung 2 Arrays.
ASCII Was ist ein ASCII Code?.
Der Winkel zwischen Vektoren
11 Ausgewählte Algorithmen der Computergraphik Digitale Geometrie Gebiete und Konturen Farbmodelle Renderalgorithmen Schnelle Multiplikation Fast Fourier.
Klausur „Diskrete Mathematik II“
- mal + = - + mal - = - + mal + = + - mal - = +
Korrektur Aufgabe 8.1 Anstatt x2-2x+3 muss es heissen x2-4x+3.
Wärmelehre Lösungen.
Elektrizitätslehre Lösungen.
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Herleitung der Formel zur Berechnung von Winkeln zwischen 2 Vektoren
 Präsentation transkript:

Multiplikation großer Zahlen mit Standard-FFT 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!

Lösung: Verwendung des Faltungssatzes 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;

Ziel: Sinnvolle Abschätzungen für den Gesamtfehler 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

Fehler mit Basis b=2

Fehler mit Basis b=128

Laufzeitverhalten