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