Untermatrizen einer Matrix auf Einsen in der Hauptdiagonalen überprüfen
-
Hallo,
ich habe folgendes Problem und nach langem Tüfteln komme ich nicht mehr weiter.
Ich habe eine beliebige Matrix[zeilen][spalten], die ich beliebig mit 0en und 1en fülle.
Wenn ich herausfinden will, wieviele quadratische Untermatrizen diese Matrix für ein einzugebendes n enthält, dann habe ich folgende Formel:
anzahl=((z-n+1)*(s-n+1));
Also hat zum Beispiel die Matrix[3][4] für n=2, 6 quadratische Untermatrizen[2][2].
Jetzt will ich bestimmen, wieviele quadratische Untermatrizen in der Hauptdiagonalen nur den Wert 1 besitzen.
Die Untermatrizen können nicht nur Einheitsmatrizen sein, sondern zum Beipsiel auch komplett mit Einsen belegt sein.
Irgendwie muß ich jetzt doch die Matrix durchlaufen lassen und immer schauen ob das Element[i][j]==1&&Element[i+1][j+1]==1 ist,
oder ich könnte es ja auch mit dem Produkt machen. Also solange das Produkt immer 1 ist gehe zum nächsten Element.Vielleicht könnte mir jemand bei der Schleifenbildung helfen?
Wäre sehr nett. Viele Grüße
David
-
Geh doch Diagonale für Diagonale durch. Schau Dir die 1er dort an und berechne wieviele quadratische Matrizen man da drüber legen kann.
-
Jester schrieb:
Geh doch Diagonale für Diagonale durch. Schau Dir die 1er dort an und berechne wieviele quadratische Matrizen man da drüber legen kann.
Ich habe mir schon mehrere Möglichkeiten überlegt, aber ich komme mit der Schleifenbildung nicht klar. Denn ich muß ja in der Hauptmatrix oben links beginnen mit der normalen Matrix Schleife, brauche aber ja auch noch Schleifen für die Untermatrizen um die zu verschieben oder?