Python :: Aufgabe #344 :: Lösung #1

3 Lösungen Lösungen öffentlich
#344

Prüfen auf Toeplitz-Matrix

Fortgeschrittener - Python von JKooP - 16.04.2021 um 17:07 Uhr
Von einer Toeplitz-Matrix spricht man, wenn alle Diagonalen von links oben nach rechts unten die gleichen Zahlen enthalten.

Beispiel 1:
matrix = { {4, 5, 6, 7, 8}, {3, 4, 5, 6, 7 }, {2, 3, 4, 5, 6}, {1, 2, 3, 4, 5} }
Lösung: wahr, denn alle Diagonalen enthalten die gleichen Zahlen =>
{1}, {2, 2}, {3, 3, 3}, {4, 4, 4, 4}, {5, 5, 5, 5}, {6, 6, 6}, {7, 7}, {8}

Beispiel 2:
matrix = { {1, 2}, {2, 2} }
Lösung: falsch, denn die zweite Diagonale enthält unterschiedliche Zahlen =>
{1}, {1, 2}, {2}

Erstelle eine Methode/Funktion, die jede Matrix größer 2x2 dahingehend prüft, ob es sich um eine Toeplitz-Matrix handelt.

Viel Spaß
#1
vote_ok
von AlexGroeg (2010 Punkte) - 17.04.2021 um 17:08 Uhr
Quellcode ausblenden Python-Code

def ist_toeplitz_matrix(m):
    zeilen  = len(m)-1
    spalten = len(m[0])-1
    n = zeilen * spalten
    
    if n < 1:
        print('Das ist keine Matrix !!')
        return False
    
    spalte = 0
    while n > 0:
        for zeile in range(zeilen):
            try:
                if m[zeile][spalte] == m[zeile +1][spalte +1]:
                    spalte += 1
                else: 
                    return False
            except:
                spalte = 0
        n -= 1
    return True



matrix = [ [4, 5, 6, 7, 8], 
           [3, 4, 5, 6, 7], 
           [2, 3, 4, 5, 6], 
           [1, 2, 3, 4, 5] ]

for i in matrix:  
    print(i)
print('Ist Toeplitz-Matrix:', ist_toeplitz_matrix(matrix), '\n')


matrix = [ [1, 2], 
           [2, 2] ]

for i in matrix:  
    print(i)
print('Ist Toeplitz Matrix:', ist_toeplitz_matrix(matrix), '\n') 

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2110428

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.