Die Idee
Wir haben schon einmal Matrixspiralen gemacht und volle Rotationen und sogar diagonale Rotationen , aber soweit ich das beurteilen kann, keine Schlangenrotationen !
Was ist eine Schlangenrotation?
Stellen Sie sich die Reihen einer Matrix vor, die sich hin und her schlängeln, mit Trennlinien zwischen ihnen wie die Trennlinien einer langen Warteschlange:
+--------------+
1 2 3 4 5|
+------------ |
|10 9 8 7 6|
| +-----------+
|11 12 13 14 15|
+------------ |
20 19 18 17 16|
+--------------+
Stellen Sie sich nun vor, Sie drehen diese Objekte um 2. Jedes Objekt rückt vor, so wie sich Personen in einer Reihe bewegen, und die Objekte am Ende werden ausgeblendet und kehren zum Anfang zurück:
+--------------+
--> 19 20 1 2 3|
+------------ |
| 8 7 6 5 4|
| +-----------+
| 9 10 11 12 13|
+------------ |
<-- 18 17 16 15 14|
+--------------+
Wenn es eine ungerade Anzahl von Zeilen gibt, wird es von rechts beendet, aber immer noch zum Anfang umgebrochen. Zum Beispiel ist hier eine 3 Drehung:
+--------------+
1 2 3 4 5|
+------------ |
|10 9 8 7 6|
| +-----------+
|11 12 13 14 15
+--------------+
+--------------+
--> 13 14 15 1 2|
+------------ |
| 7 6 5 4 3|
| +-----------+
| 8 9 10 11 12 -->
+--------------+
Eine negative Drehung führt Sie rückwärts. Hier ist eine -2 Drehung:
+--------------+
<-- 3 4 5 6 7|
+------------ |
|12 11 10 9 8|
| +-----------+
|13 14 15 1 2 <--
+--------------+
Die Herausforderung
Ihre Funktion oder Ihr Programm nimmt 2 Eingaben in einem beliebigen Format entgegen:
- Eine Matrix
- Eine Ganzzahl (positiv oder negativ), die angibt, an wie vielen Stellen gedreht werden soll.
Es wird zurückkehren:
- Die gedrehte Matrix
Anmerkungen:
- Code Golf. Wenigste Bytes gewinnt.
- Matrizen müssen nicht quadratisch sein, sondern enthalten mindestens 2 Zeilen und 2 Spalten
- Positive Ganzzahlen drehen Zeile 1 nach rechts
- Negative Ganzzahlen drehen Zeile 1 nach links
- Sie können die Bedeutung von positiven / negativen Rotationsnummern umkehren, falls dies zweckmäßig ist
- Die Rotationsnummer kann größer sein als die Anzahl der Elemente. In diesem Fall wird es gewickelt. Das heißt, es entspricht der Anzahl Modulo der Anzahl der Elemente.
- Die Matrix enthält nur Ganzzahlen, kann jedoch beliebige Ganzzahlen enthalten, einschließlich Wiederholungen
Testfälle
Format:
- Matrix
- Umdrehungszahl
- Erwarteter Rückgabewert
4 5
6 7
1
6 4
7 5
2 3 4 5
6 7 8 9
10 11 12 13
-3
5 9 8 7
12 11 10 6
13 2 3 4
8 8 7 7
5 5 6 6
10
5 5 8 8
6 6 7 7