Der Titel setzt sich aus 'Sequence Index Digit Not' zusammen.
Herausforderung:
Bei einer gegebenen ganzen Zahl n
wird >= 0
die 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 n
muss 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=0
Ausgänge1
.1
: Die erste Ziffer (0
) enthält nicht dieselbe Ziffer, wird alson=1
ausgegeben0
.2
: Wir sind bereits auf0
und 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=2
Ausgänge3
.- ...
10
: Wir sind bereits darauf gestoßen0-9
, also ist die nächste in der Reihe10
. Enthält10-19
die übereinstimmende Ziffer1
,20
enthält die übereinstimmende Ziffer0
,21
enthält die übereinstimmende Ziffer1
erneut,22
ist gültig,n=10
gibt 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 des1
atn=0
und des0
atn=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,
n
wenn 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 n
Indexausgaben o
, o
Indexausgaben 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.