Einführung
Inspiriert von dem jüngsten Video The Trapped Knight - Numberphile , habe ich mir eine Herausforderung ausgedacht .
Die gefangene Rittersequenz ist eine endliche ganzzahlige Sequenz der Länge 2016, beginnend mit 1, und hat die folgenden Konstruktionsregeln:
- Schreiben Sie eine Zahlenspirale folgendermaßen:
17 16 15 14 13 ...
18 5 4 3 12 ...
19 6 1 2 11 ...
20 7 8 9 10 ...
21 22 23 24 25 ...
- Setze einen Ritter auf 1.
- Bewegen Sie den Ritter gemäß den Schachregeln (dh 2 Einheiten vertikal und 1 Einheit horizontal oder umgekehrt) auf das Gitter mit der kleinsten Anzahl, die er zuvor noch nicht besucht hat.
- Wiederholen, bis der Ritter stecken bleibt.
Hier sind die ersten drei Schritte:
Schritt 1
17 [16] 15 [14] 13
[18] 5 4 3 [12]
19 6 < 1> 2 11
[20] 7 8 9 [10]
21 [22] 23 [24] 25
Mögliche Züge sind 10, 12, 14, 16, 18, 20, 22, 24, wobei der kleinste 10 ist, der zweite Term also 10.
Schritt 2
4 [ 3] 12 [29] 54
( 1) 2 11 28 [53]
8 9 <10> 27 52
[23] 24 25 26 [51]
46 [47] 48 [49] 50
Mögliche Züge sind 1 , 3, 23, 29, 47, 49, 51, 53, wobei der kleinste 3 ist, der dritte Term also 3.
Schritt 3
35 [34] 33 [32] 31
[16] 15 14 13 [30]
5 4 < 3> 12 29
[ 6] ( 1) 2 11 [28]
7 [ 8] 9 (10) 27
Mögliche Züge sind 6, 8, 10 , 16, 28, 30, 32, 34, von denen der kleinste 6 ist, der vierte Term also 6.
Die Sequenz spielt mit:
1 10 3 6 9 4 7 2 5 8 11 14 ...
und endet mit
... 2099 2284 2477 2096 2281 2474 2675 2884 3101 2880 2467 2084
Herausforderung
Schreiben Sie ein kürzestes Programm oder eine kürzeste Funktion, indem Sie eine Ganzzahl im Bereich [1, 2016]
(oder [0, 2015]
wenn 0-indiziert verwendet wird) als Eingabe erhalten und die Nummer an diesem Index in der Sequenz der gefangenen Ritter ausgeben. Sie können wählen, ob die Sequenz mit 0 oder 1 indiziert werden soll. Sie müssen jedoch angeben, welches Indizierungsschema Sie verwenden.
Testfälle (1-indiziert)
n | s(n)
-----+-----
1 | 1
2 | 10
3 | 3
6 | 4
11 | 11
21 | 23
51 | 95
101 | 65
201 | 235
501 | 761
1001 | 1069
2001 | 1925
2016 | 2084
Alle möglichen Ausgaben finden Sie auf dieser Seite .
Gewinnkriterien
Der kürzeste Code jeder Sprache gewinnt. Es gelten Einschränkungen für Standardlücken.
12851850258