Der Titel setzt sich aus 'Sequence Index Digit Not' zusammen.
Herausforderung:
Bei einer gegebenen ganzen Zahl nwird >= 0die n'te Zahl der folgenden Sequenz ausgegeben .
Hier sind die ersten 50 Elemente, über denen sich der (0-indizierte) Index befindet:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
1 0 3 2 5 4 7 6 9 8 22 20 30 24 23 26 25 28 27 32 11 33 10 14 13 16 15 18 17 31 12 29 19 21 50 40 41 42 44 45 35 36 37 51 38 39 52 53 55 56 34
Wie funktioniert diese Sequenz?
Die Zahl am Index nmuss die erste sein, mit der keine Ziffern gemeinsam sind n, und ist für frühere Indizes noch nicht aufgetreten. Wenn wir also eine normale Sequenz wie diese betrachten, von 0-60:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Wir definieren die n'ten Werte wie folgt:
0: Die erste Ziffer (0) enthält dieselbe Ziffer, daher suchen wir nach der nächsten Ziffer (1), die nicht dieselbe Ziffer enthält. Alson=0Ausgänge1.1: Die erste Ziffer (0) enthält nicht dieselbe Ziffer, wird alson=1ausgegeben0.2: Wir sind bereits auf0und gestoßen1, und die nächste Ziffer (2) enthält dieselbe Ziffer. Deshalb suchen wir nach der nächsten Ziffer (3), die nicht dieselbe Ziffer enthält. Alson=2Ausgänge3.- ...
10: Wir sind bereits darauf gestoßen0-9, also ist die nächste in der Reihe10. Enthält10-19die übereinstimmende Ziffer1,20enthält die übereinstimmende Ziffer0,21enthält die übereinstimmende Ziffer1erneut,22ist gültig,n=10gibt also aus22.- etc.
Herausforderungsregeln:
- Wenn Ihre Sprache 1-indiziert ist (oder Sie dies wünschen), können Sie die Sequenz um
3 2 5 4 7 ...(Überspringen des1atn=0und des0atn=1) beginnen. - Der kleinste Index, den Sie unterstützen sollten, ist
25,000. HINWEIS: Die Sequenz stoppt am Index1,023,456,788, da der nächste Index in der Zeile alle 10 Ziffern enthält. - Sie können auch ein Array / eine Liste der gesamten Sequenz bis einschließlich Index ausgeben / zurückgeben,
nwenn Sie dies möchten.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle:
Diese Sequenz erzeugte tatsächlich Paare in Bezug auf Index und Ausgaben. Wenn nIndexausgaben o, oIndexausgaben n. Sie können also entweder links oder rechts eingeben, und die Ausgabe erfolgt auf der anderen Seite:
0 <-> 1 (this test case is optional)
2 <-> 3
10 <-> 22
12 <-> 30
34 <-> 50
89 <-> 100
111 <-> 200
112 <-> 300
199 <-> 322
2231 <-> 4456
9605 <-> 11118
19235 <-> 46000
23451 <-> 60668
25000 <-> 13674
Hier ist ein Pastebin der ersten 25.001 Testfälle, wenn Sie andere ausprobieren möchten.