C# :: Aufgabe #384 :: Lösung #1
1 Lösung

#384
Prüfen auf Toeplitz-Matrix
Fortgeschrittener - C#
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ß
#1

von JKooP (18090 Punkte)
- 14.05.2021 um 07:51 Uhr
NET 5.x; C# 9.x; VS-2019
C#-Code

using System; using System.Linq; var matrix = new int[][] { new int[] { 1, 2, 3, 4 }, new int[] { 5, 1, 2, 3 }, new int[] { 9, 5, 1, 2 } }; Console.WriteLine(IsToeplitzMatrix(matrix)); static bool IsToeplitzMatrix(int[][] matrix) { var i = 0; var k = 1; while (k < matrix.Length) { var c = matrix[i].Take(matrix[i++].Length - 1); var n = matrix[k++].Skip(1); if (!c.SequenceEqual(n)) return false; } return true; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1