Wygeneruj numern
sekwencji zasad, w których znajduje się palindrom ( OEIS A126071 ).
W szczególności, sekwencja jest zdefiniowana następująco: podany numer n
, wyrażać je w bazie a
za a = 1,2, ..., n
, a ilu z tych wyrażeń są palindromiczna. „Palindromic” jest rozumiany w kategoriach odwracania podstawowych a
cyfr wyrażenia jako jednostek atomowych (dzięki, @Martin Büttner ). Jako przykład rozważ n= 5
:
a=1
: wyrażenie to11111
: palindromica=2
: wyrażenie to101
: palindromica=3
: wyrażenie jest12
: nie palindromicznea=4
: wyrażenie to11
: palindromica=5
: wyrażenie jest10
: nie palindromiczne
Dlatego wynik dla n=5
jest 3
. Zauważ, że OEIS używa baz 2, ..., n+1
zamiast 1, ..., n
(dzięki, @beaker ). Jest to równoważne, ponieważ wyrażenia w bazie 1
i n+1
zawsze są palindromiczne.
Pierwsze wartości sekwencji to
1, 1, 2, 2, 3, 2, 3, 3, 3, 4, 2, 3, 3, 3, 4, 4, 4, 4, 2, 4, 5, ...
Dane wejściowe to dodatnia liczba całkowita n
. Dane wyjściowe to pierwsze n
warunki sekwencji.
Program powinien teoretycznie działać (biorąc pod uwagę wystarczającą ilość czasu i pamięci) na wszelkie n
ograniczenia wynikające z domyślnego typu danych w obliczeniach wewnętrznych.
Wszystkie funkcje są dozwolone. Najniższa liczba bajtów wygrywa.
źródło
Odpowiedzi:
Pyth, 13 bajtów
I
Zwięzłość tego wynika głównie zI
nieocenionego polecenia „ nvariant”.Jeśli
True
jest akceptowalnym wyjściem1
,msm_IjdkSdSQ
działa (12 bajtów).Wypróbuj tutaj .
źródło
_I#
zamiastf_IT
(nie jestem w 100% pewien, że była dostępna, ale wydaje się, że była ).Galaretka, 14 bajtów
Wypróbuj online!
Wersja niekonkurująca
Tłumacz Jelly miał błąd, który uniemożliwiał konwersję na jednoargumentową. Zostało to teraz naprawione, więc poniższy kod ( 12 bajtów ) również wykonuje dane zadanie.
Wypróbuj online!
Jak to działa
źródło
MATL , 19
20bajtówWykorzystuje bieżącą wersję (10.1.0) , która jest wcześniejsza niż to wyzwanie.
Wypróbuj online !
Wyjaśnienie
źródło
CJam, 20 bajtów
Sprawdź to tutaj.
źródło
Haskell, 88 bajtów
źródło
ES6, 149 bajtów
Działa również dla baz> 36.
źródło
JavaScript (ES6),
10595 bajtówWyjaśnienie
Pobiera liczbę od 1 do 36 (ograniczenie konwersji zasad w JavaScript) i zwraca tablicę sekwencji.
Funkcja rekurencyjna, która sprawdza palindromy podczas przekazywania zasady, w przeciwnym razie zwraca sekwencję, jeśli tylko
n
zostanie przekazana.Test
źródło
Galareta , 8 bajtów
Wypróbuj online!
Prawdopodobnie niekonkurencyjna wersja:
Wypróbuj online!
źródło
PHP, 73 + 1 bajty
działa dla baz
1
do36
. Uruchom jako potok z-nR
lub spróbuj online .źródło
PHP, 92 + 1 bajty:
działa dla wszystkich baz. Uruchom jako potok z
-nR
lub spróbuj online .źródło
Python 2, 97 bajtów
Mój pierwszy post w Pythonie, właściwie mój pierwszy kod w Pythonie
prawdopodobnie ma pewien potencjał golfowy.
Wypróbuj online!
źródło
> <>, 197 + 2 bajtów
+2 dla flagi -v
Wydaje się, że tio.run nie zwraca żadnych danych wyjściowych dla n> 1, ale można to sprawdzić na https://fishlanguage.com . Dane wejściowe znajdują się w polu „Początkowy stos”.
źródło
Japt , 10 bajtów
Spróbuj
Wyjaśnienie
źródło
Python 2 , 85 bajtów
Wypróbuj online!
Oczekuje liczby całkowitej jako argumentu.
Wyjaśnienie:
źródło