... oder Toroidal Moore Nachbarschaften
Angesichts positive ganze Zahlen sind h
, w
und eine nicht negative ganze Zahl i
, kehren alle Indizes umgibt i
.
Sie müssen eine Matrix annehmen, die aus h
Zeilen von w
Elementen besteht, die von der niedrigsten in der oberen linken Ecke bis zur höchsten in der unteren rechten Ecke nummeriert sind, und in einem angemessenen Format eine Liste der entsprechenden Indizes zurückgeben umgeben den Index i
. Diese Matrix ist ein Torus (eine unendliche Karte, die sich um jede Kante wickelt).
Zum Beispiel würden Eingaben h=4
und zu folgender w=4
Matrix führen:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
aber genauer:
15 12 13 14 15 12
3 0 1 2 3 0
7 4 5 6 7 4
11 8 9 10 11 8
15 12 13 14 15 12
3 0 1 2 3 0
so dass , wenn i
war 0
, würde müssen Sie zurückkommen 15, 12, 13, 3, 1, 7, 4, 5
(0-basiert).
Beispiele
0-basiert:
h w i Expected result
4 4 5 0, 1, 2, 4, 6, 8, 9, 10
4 4 0 15, 12, 13, 3, 1, 7, 4, 5
4 5 1 15, 16, 17, 0, 2, 5, 6, 7
1 3 2 1, 2, 0, 1, 0, 1, 2, 0
1 1 0 0, 0, 0, 0, 0, 0, 0, 0
1-basiert:
h w i Expected result
4 4 6 1, 2, 3, 5, 7, 9, 10, 11
4 4 1 16, 13, 14, 4, 2, 8, 5, 6
4 5 2 16, 17, 18, 1, 3, 6, 7, 8
1 3 3 2, 3, 1, 2, 1, 2, 3, 1
1 1 1 1, 1, 1, 1, 1, 1, 1, 1
Regeln
- Ihre Antwort kann 0 oder 1-indiziert sein, Ihre Wahl, bitte spezifizieren.
- Das können Sie annehmen
i < h * w
(oderi <= h * w
für 1-indizierte Antworten). - Das können Sie annehmen
i >= 0
(oderi > 0
für 1-indizierte Antworten). - Die Reihenfolge der zurückgegebenen Werte ist nicht wichtig, solange nur die acht gewünschten Werte enthalten sind.
- Standardlücken sind verboten .
- Das ist Code-Golf, also gewinnt die kürzeste Antwort in jeder Sprache!
Vielen Dank an @Conor O'Brien für den technischeren Titel und @ngm für mehr Testfälle!