Einleitung (kann ignoriert werden)
Es ist ein bisschen langweilig, alle positiven Zahlen in der regulären Reihenfolge (1, 2, 3, ...) anzuordnen, nicht wahr? Hier ist also eine Reihe von Herausforderungen im Zusammenhang mit Permutationen (Umformungen) aller positiven Zahlen. Dies ist die fünfte Herausforderung in dieser Reihe (Links zur ersten , zweiten , dritten und vierten Herausforderung).
Bei dieser Herausforderung treffen wir auf das Wythoff-Array, eine Lawine aus Fibonacci-Sequenzen und Beatty-Sequenzen!
Die Fibonacci-Zahlen sind für die meisten von Ihnen wahrscheinlich eine bekannte Folge. Bei zwei gegebenen Startnummern und sind die folgenden gegeben durch: für .
Die Beatty-Sequenz bei gegebenem Parameter lautet: für . Eine der Eigenschaften der Beatty-Sequenz ist, dass es für jeden Parameter genau einen Parameter , sodass die Beatty-Sequenzen für diese Parameter disjunkt und miteinander verbunden sind und alle natürlichen Zahlen außer umfassen 0 (zB: ).
Jetzt kommt der überwältigende Teil: Sie können ein Array erstellen, in dem jede Zeile eine Fibonacci-Sequenz und jede Spalte eine Beatty-Sequenz ist. Dieses Array ist das Wythoff-Array . Das Beste daran ist: Jede positive Zahl kommt in diesem Array genau einmal vor! Das Array sieht folgendermaßen aus:
1 2 3 5 8 13 21 34 55 89 144 ...
4 7 11 18 29 47 76 123 199 322 521 ...
6 10 16 26 42 68 110 178 288 466 754 ...
9 15 24 39 63 102 165 267 432 699 1131 ...
12 20 32 52 84 136 220 356 576 932 1508 ...
14 23 37 60 97 157 254 411 665 1076 1741 ...
17 28 45 73 118 191 309 500 809 1309 2118 ...
19 31 50 81 131 212 343 555 898 1453 2351 ...
22 36 58 94 152 246 398 644 1042 1686 2728 ...
25 41 66 107 173 280 453 733 1186 1919 3105 ...
27 44 71 115 186 301 487 788 1275 2063 3338 ...
...
Ein Element in Zeile und Spalte ist wie folgt definiert:
wobei der goldene Schnitt ist: .
Wenn wir den Antidiagonalen dieses Arrays folgen, erhalten wir A035513 , die Zielsequenz für diese Herausforderung (beachten Sie, dass diese Sequenz von Neil Sloane selbst zum OEIS hinzugefügt wurde !). Da dies eine „reine Sequenz“ Herausforderung ist, die Aufgabe zu Ausgang ist für eine gegebene als Eingabe, wobei ist A035513 .
Es gibt verschiedene Strategien, um zu , was diese Herausforderung (meiner Meinung nach) wirklich interessant macht.
Aufgabe
Bei einem gegebenen ganzzahligen Eingangs , Ausgabe im Ganzzahlformat, wobei ist A035513 .
Hinweis: Hier wird eine 1-basierte Indizierung angenommen. Sie können eine 0-basierte Indizierung verwenden, also usw. Bitte erwähnen Sie dies in Ihrer Antwort, wenn Sie dies verwenden möchten.
Testfälle
Input | Output
---------------
1 | 1
5 | 7
20 | 20
50 | 136
78 | 30
123 | 3194
1234 | 8212236486
3000 | 814
9999 | 108240
29890 | 637
Regeln
- Eingabe und Ausgabe sind Ganzzahlen
- in diesem Bereich bis zu 30 Ziffern umfasst ...
- Ungültige Eingaben (0, Gleitkommazahlen, Zeichenfolgen, negative Werte usw.) können zu unvorhergesehenen Ausgaben, Fehlern oder (un) definiertem Verhalten führen.
- Es gelten die Standard- E / A-Regeln .
- Standardlücken sind verboten.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes
999nicht9999