Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

[Java] Matrixmultiplikation nach Schönhage

  Alt 12. Mai 2006, 20:45
Morgen.

Ich hab ein Problem. Die zweite Uni-Aufgabe ist "Matrixmultiplikation nach dem Schönhage-Verfahren"

Problem: Matrixmultiplikation ist ein bisschen kompliziert für einen Neuntklässler.

Ich hab schon mal folgenden Algorithmus geschrieben, der zwei Matrizen der Größe n*n multipliziert nach dem Standardverfahren:

Code:
public static Matrix stdMult(Matrix m1, Matrix m2) throws MMException {
    int n=m1.getSize();
    Matrix result=new Matrix(n);
    for(int i=0; i<n; i++) {
        for(int j=0; j<n; j++) {
            int value=0;
            for(int k=0; k<n; k++) {
                value+=m1.getElem(i,k)*m2.getElem(k,j);  
            }
            result.setElem(i,j,value);
        }
    }
    return result;        
}
So weit, so gut.
Ist dieser Algorithmus richtig? Und wenn ja, wie entwickle ich daraus jetzt einen rekursiven Schönhage-Algorithmus in der Funktion ssMult(Matrix m1, Matrix m2, int n0)?

(Wenn die größe der übergebenen Matrizen<=n0 ist, wird die Standardmultiplikation verwendet.)

Bei mir hängts momentan noch daran, dass ich keine Ahnung habe, wie so ein Schönhage-Algorithmus funktioniert.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat