Aufgabe 1
-
Erweitern Sie die Klasse Matrix zunächst um folgende Methoden:
- Matrix(Matrix a)
// erzeugt Matrix als Kopie von a
- Matrix getMatrix(int i0, int
i1, int j0, int j1)
// erzeugt eine Teilmatrix A(i0..i1, j0..j1)
- void setMatrix(int i0, int j0,
Matrix teil)
// belegt die Matrix mit einer Teilmatrix
- Matrix minus(Matrix a)
// gibt Differenz von aktueller Matrix und a zurück
- Matrix plus(Matrix a)
// gibt Summe von aktueller Matrix und a zurück
- void plusGleich(Matrix a)
// addiert a zur aktuellen Matrix
- void minusGleich(Matrix a)
// subtrahiert a von der aktuellen Matrix
- String toString()
// Ausgabestring: Zeilen durch Newline getrennt, Werte durch
Komma
- Implementieren Sie nun den Strassen-Algorithmus und
vergleichen Sie die Ausführungszeiten für verschiedene Matrixgrößen mit
denen der normalen Matrixmultiplikation. Beschränken Sie sich auf den
einfachen Fall von quadratischen Matrizen, deren Dimension eine
Zweierpotenz ist.
- Fügen Sie noch eine minimale Matrixgröße ein,
unterhalb derer die Rekursion abbricht und stattdessen die normale
Matrixmultiplikation verwendet wird.
- Lösung