Definicja
Z opisu na OEIS A006345 :
Aby znaleźć
a(n)
, rozważ albo a1
albo2
. Dla każdego znajdź najdłuższy powtarzany sufiks, czyli dla każdego z nicha(n)=1,2
znajdź najdłuższą sekwencjęs
z właściwością, z którąa(1),...,a(n)
kończy się sekwencjass
. Użyj cyfry, która daje krótszy taki sufiks.a(1) = 1
.
Opracowany przykład
a(1)=1
.
Jeśli a(2)=1
będziemy mieli sekwencję, w 1 1
której znajduje się najdłuższy podwojony podciąg od końca 1
. Jeśli a(2)=2
zamiast tego byłby to pusty podciąg. W związku z tym a(2)=2
.
Kiedy n=6
wybieramy pomiędzy 1 2 1 1 2 1
i 1 2 1 1 2 2
. W pierwszym wyborze 1 2 1
jest podwojony kolejno od końca. W drugim wyborze jest to 2
zamiast tego. Dlatego też a(6)=2
.
Kiedy n=9
wybieramy pomiędzy 1 2 1 1 2 2 1 2 1
i 1 2 1 1 2 2 1 2 2
. W pierwszym wyborze najdłużej podwojony jest kolejny podciąg 2 1
, podczas gdy w drugim wyborze 1 2 2
jest podwojony kolejno na końcu. W związku z tym a(9)=1
.
Zadanie
Biorąc pod uwagę n
, wróć a(n)
.
Okular
n
będzie pozytywny.- Możesz użyć 0 indeksowanych zamiast 1 indeksowanych. W takim przypadku proszę to zaznaczyć w swojej odpowiedzi. W takim przypadku
n
może być0
również.
Przypadki testowe
Przypadki testowe mają indeks 1. Można jednak użyć indeksowania 0.
n a(n)
1 1
2 2
3 1
4 1
5 2
6 2
7 1
8 2
9 1
10 1
11 2
12 1
13 2
14 2
15 1
16 1
17 2
18 1
19 1
20 1
Bibliografia
- WolframMathWorld
- Obowiązkowy OEIS A006345
źródło
n=9
pierwszy wybór1 2 1 1 2 2 1 2 1
ma podwojony podciąg2 1
na końcu.Odpowiedzi:
Haskell,
146140137133118 118 bajtówźródło
(\x->(\s->...
? W przeciwnym razie możesz pisać(\x s->...
.div ...
, możesz użyć krótszejn
. Wszystkie dodatkowe porównania zwrócą wartość false i nie zmienią wyniku.Python, 137 bajtów
To rozwiązanie korzysta z indeksowania opartego na 0.
źródło
Galaretka ,
25242220 bajtów2 bajty dzięki Dennisowi.
Wypróbuj online!
Port mojej odpowiedzi w Pyth .
źródło
Mathematica, 84 bajty
źródło
Galaretka ,
3029282724 bajtówWypróbuj online! lub zweryfikuj wszystkie przypadki testowe .
źródło
MATL , 34 bajty
Wypróbuj online! lub zweryfikuj wszystkie przypadki testowe .
Wyjaśnienie
źródło
Python 2, 94 bajty
Wykorzystuje indeksowanie 0. Przetestuj na Ideone .
źródło
Pyth , 26 bajtów
Zestaw testowy.
Wyjaśnienie
Kiedy
n = 6
wybieramy pomiędzy1 2 1 1 2 1
i1 2 1 1 2 2
.Generujemy te dwie możliwości, a następnie przyglądamy się ich przyrostkom.
Na pierwszej z nich, przyrostki są:
1
,2 1
,1 2 1
,1 1 2 1
,2 1 1 2 1
,1 2 1 1 2 1
.Filtrujemy podwojone sufiksy, sprawdzając, czy są takie same po obróceniu ich pod względem długości podzielonej przez 2 (okazuje się, że ta kontrola nie jest idealna, ponieważ potwierdza
1
i2
również).Bierzemy ostatni podwójny przyrostek, a następnie bierzemy jego długość.
Następnie wybieramy możliwość odpowiadającą minimalnej długości wygenerowanej powyżej.
Następnie przechodzimy do następnej wartości
n
.Na potrzeby tego programu golfista wygenerował zamiast tego odwróconą tablicę.
źródło
Pyth,
4629 bajtówCzerpałem inspirację z doskonałej odpowiedzi Pyth @Leaky Nun. Próbowałem sprawdzić, czy istnieje krótsza droga przy użyciu ciągów. Jeszcze 3 bajty krótkie!
Możesz to wypróbować tutaj .
źródło
u
ce zamiast jawnej pętli for pozwala zaoszczędzić 4 bajtySiatkówka ,
5142 bajtów9 bajtów dzięki Martinowi Enderowi.
Wypróbuj online!
Część tej odpowiedzi .
źródło
Perl, 40 bajtów
Kod ma 39 bajtów długości i wymaga
-p
przełącznika ( +1 bajt).Pętla jest inspirowana rozwiązaniem Perla na odpowiednim stronie OEIS , chociaż wymyśliłem niezależnie wyrażenie regularne.
Przetestuj na Ideone .
źródło
JavaScript (ES6), 84
Baza indeksu 0
Mniej golfa
Test
źródło