Programmieren - alles kontrollieren 4.937 Themen, 20.647 Beiträge

Matrizenmultiplikationsalgorithmus

leon26 / 2 Antworten / Flachansicht Nickles

Hi ich hab ein kleines Programm in C geschrieben das zwei Matritzen miteinander multipliziert .aber das Programm ist viel zu umständig.


int main()
{
 int a[2][2]={1,5,2,3};
 int b[2][3]={4,1,2,1,0,3};
    int c[2][3];
   
 c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0];
 c[0][1]=a[0][0]*b[0][1]+a[0][1]*b[1][1];
    c[0][2]=a[0][0]*b[0][2]+a[0][1]*b[1][2];


    c[1][0]=a[1][0]*b[0][0]+a[1][1]*b[1][0];
    c[1][1]=a[1][0]*b[0][1]+a[1][1]*b[1][1];
    c[1][2]=a[1][0]*b[0][2]+a[1][1]*b[1][2];


   printf("%d  %d  %d\n%d %d  %d\n\n",c[0][0],c[0][1],c[0][2],c[1][0],c[1][1],c[1][2]);


return 0;
}


Die frage ist wie kann man das einfacher und übersichtlicher machen?


für euer vorschläge bin ich sehr dankbar

bei Antwort benachrichtigen
Timmy443 leon26 „Matrizenmultiplikationsalgorithmus“
Optionen

Hi,

das Problem zwei Matrizen zu multiplizieren liegt in der Komplexitätsklasse O(n^3). Es gibt eine Möglichkeit den Rechenaufwand leicht zu drücken in O(n^2.81) (Algorithmus von Strassen), aber das lohnt sich nur für wirklich riesige Matrizen. Wenn du es mit den drei Schleifen implementierst wird das für deine Zwecke sicher reichen.

Gruß, Timmy

bei Antwort benachrichtigen