Tytuł składa się z „Sequence Index Digit Not”.
Wyzwanie:
Biorąc pod uwagę liczbę całkowitą, n
która jest >= 0
, n
wypisz liczbę w następującej kolejności.
Oto pierwsze 50 pozycji, nad którymi znajduje się indeks (indeksowany 0):
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
Jak działa ta sekwencja?
Liczba w indeksie n
musi być pierwsza w kolejności, która nie ma żadnych wspólnych cyfr n
i nie pojawiła się jeszcze dla poprzednich indeksów. Kiedy więc popatrzymy na taką normalną sekwencję z 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
Definiujemy następujące n
wartości:
0
: Pierwsza liczba (0
) zawiera tę samą cyfrę, więc szukamy następnej (1
), która nie zawiera tej samej cyfry. Więcn=0
wyjścia1
.1
: Pierwsza liczba (0
) nie zawiera tej samej cyfry, więcn=1
wypisuje0
.2
: Już się spotkaliśmy0
i1
, a następna cyfra (2
) zawiera tę samą cyfrę, więc szukamy następnej (3
), która nie zawiera tej samej cyfry. Więcn=2
wyjścia3
.- ...
10
: Już się spotkaliśmy0-9
, więc następny jest10
.10-19
zawiera pasującą cyfrę1
,20
zawiera pasującą cyfrę0
, ponownie21
zawiera pasującą cyfrę1
,22
jest poprawna, więcn=10
generuje22
.- itp.
Zasady konkursu:
- Jeśli twój język jest indeksowany 1 (lub zdecydujesz się na to), możesz rozpocząć sekwencję od
3 2 5 4 7 ...
(pomijając1
atn=0
i0
atn=1
). - Najmniejszy największy indeks, który powinieneś wesprzeć to
25,000
. UWAGA: Sekwencja kończy się na indeksie1,023,456,788
, ponieważ następny indeks w wierszu zawiera wszystkie 10 cyfr. - Możesz także wyświetlać / zwracać tablicę / listę całej sekwencji do indeksu włącznie,
n
jeśli chcesz.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe:
Ta sekwencja faktycznie utworzyła pary dotyczące indeksu i wyników. Jeśli dane n
wyjściowe o
indeksu, dane o
wyjściowe indeksu n
. Możesz więc wprowadzić lewy lub prawy, a wyjście będzie po drugiej stronie:
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
Oto lista pierwszych 25001 przypadków testowych, jeśli chcesz wypróbować inne.