Python :: Aufgabe #344
3 Lösungen

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ß
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ß
Lösungen:

""" #344: Prüfen auf Toeplitz-Matrix Erstelle eine Methode/Funktion, die jede Matrix größer 2x2 dahingehend prüft, ob es sich um eine Toeplitz-Matrix handelt. """ def prf_toepl(matrix): zei = len(matrix) spa = len(matrix[0]) erg = 0 for i in range(0, zei - 1): if matrix[i][0:spa - 1] == matrix[i + 1][1:spa]: erg = 0 else: erg = 1 if erg == 0: print("Toeplitz Matrix = TRUE") else: print("Toeplitz Matrix = FALSE") def main(): matrix1 = [[1, 2], [2, 2]] matrix2 = [[4, 5, 6, 7, 8], [3, 4, 5, 6, 7], [2, 3, 4, 5, 6], [1, 2, 3, 4, 5]] matrix3 = [["a", "b", "c", "d", "e"], ["f", "a", "b", "c", "d"], ["g", "f", "a", "b", "c"], ["h", "g", "f", "a", "b"], ["i", "h", "g", "f", "a"]] prf_toepl(matrix1) prf_toepl(matrix2) prf_toepl(matrix3) if __name__ == '__main__': main()

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')

def ist_toeplitz_matrix(matrix): zeilen = len(matrix) spalte = len(matrix[0]) for zeile in range(0, zeilen -1): if matrix[zeile][0:spalte -1] != matrix[zeile +1][1:spalte]: return False return True beispiele = [ [[4, 5, 6, 7, 8], [3, 4, 5, 6, 7], [2, 3, 4, 5, 6], [1, 2, 3, 4, 5]], [[1, 2], [2, 2]] ] for matrix in beispiele: for zeile in matrix: print(zeile) print('Ist Toeplitz-Matrix:', ist_toeplitz_matrix(matrix), '\n')