raffiSSL
Lt. Junior Grade
- Registriert
- Feb. 2006
- Beiträge
- 289
Hallo, ich habe folgendes Problem: Ich soll eine quadratische Matrix programmieren, in welcher nur das obere Dreieck gefüllt wird. Die Zahlen sind Zufallszahlen (ohne Null) und die Diagonalen werden mit Nullen gefüllt. Soweit habe ich es schon. Habe also eine Methode, die diese Matrix erzeugt.
Die Hautpaufgabe ist aber nun dieses Dreieck um 90° zu drehen um den Mittelpunkt und das ganze noch 3 mal, sodass nur noch die Diagonalen mit Nullen gefüllt sind. Für eine gerade quadratische Matrix ergibt sich daraus, das der Mittelpunkt genau 4 Nullen sind, bei einer ungeraden quadratischen Matrix genau 1 Null als Mittelpunkt.
Bsp für Zeilen-/Spaltenlänge 7.:
gedreht:
Also ich habe mir mal ein paar Beispiele aufgeschrieben, und scheinbar gilt für eine zu kopierende Zahl, vielmehr für diese Stellen: die Zeilenzahl der zu kopierenden Zahl entspricht immer der Spaltenzahl der vorherigen Stelle. Und die Zeilenzahl der ersten Stelle entspricht der der Spaltenzahl der letzten Stelle.
Habe nun bereits den ganz Nachmittag gesessen und bin noch nicht einmal richtig sicher, ob ich nun mehr als 2 For-Schleifen benötige.
Vielleicht könnte mir jemand zumindest einen verständlichen Ansatz geben, wie ich aus den oben genannten Regeln einen Algorithmus baue. Ich gehe davon aus, das ich die Werte aus der in der ersten Methode erzeugten Matrix kopiere. Ich gebe diese Matrix also in die Methode, in der die Matrix bzw. das Dreieck gedreht wird und erzeuge da eine neue Matrix.
Ich hoffe das ist so verständlich.
mfg und danke
Die Hautpaufgabe ist aber nun dieses Dreieck um 90° zu drehen um den Mittelpunkt und das ganze noch 3 mal, sodass nur noch die Diagonalen mit Nullen gefüllt sind. Für eine gerade quadratische Matrix ergibt sich daraus, das der Mittelpunkt genau 4 Nullen sind, bei einer ungeraden quadratischen Matrix genau 1 Null als Mittelpunkt.
Bsp für Zeilen-/Spaltenlänge 7.:
Code:
? 1 2 3 4 5 ?
? ? 6 7 8 ? ?
? ? ? 9 ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
gedreht:
Code:
0 1 2 3 4 5 0
5 0 6 7 8 0 1
4 8 0 9 0 6 2
3 7 9 0 9 7 3
2 6 0 9 0 8 4
1 0 8 7 6 0 5
0 5 4 3 2 1 0
Also ich habe mir mal ein paar Beispiele aufgeschrieben, und scheinbar gilt für eine zu kopierende Zahl, vielmehr für diese Stellen: die Zeilenzahl der zu kopierenden Zahl entspricht immer der Spaltenzahl der vorherigen Stelle. Und die Zeilenzahl der ersten Stelle entspricht der der Spaltenzahl der letzten Stelle.
Habe nun bereits den ganz Nachmittag gesessen und bin noch nicht einmal richtig sicher, ob ich nun mehr als 2 For-Schleifen benötige.
Vielleicht könnte mir jemand zumindest einen verständlichen Ansatz geben, wie ich aus den oben genannten Regeln einen Algorithmus baue. Ich gehe davon aus, das ich die Werte aus der in der ersten Methode erzeugten Matrix kopiere. Ich gebe diese Matrix also in die Methode, in der die Matrix bzw. das Dreieck gedreht wird und erzeuge da eine neue Matrix.
Ich hoffe das ist so verständlich.
mfg und danke