Biorąc pod uwagę nieujemną liczbę całkowitą n >= 0
, wypisz na zawsze sekwencję liczb całkowitych, x_i >= 3
które są palindromami w dokładnie n
różnych zasadach b
, gdzie może być zasada 2 <= b <= x_i-2
.
Jest to w zasadzie odwrotność OEIS A126071 , gdzie wypisujesz , które indeksy w tej sekwencji mają wartość n
. Jest trochę inaczej, ponieważ zmieniłem to, więc ignorujesz bazy b = x_i-1, x_i, x_i+1
, ponieważ wyniki dla tych baz są zawsze takie same (wartości są zawsze palindromami lub zawsze nie). Także przesunięcie jest inne.
x_i
jest ograniczony do liczb, >= 3
tak więc pierwszym elementem wyniku dla każdego n
jest A037183 .
Zauważ, że format wyjściowy jest elastyczny, ale liczby powinny być dobrze rozdzielane.
Przykłady:
n seq
0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ...
1 5 7 8 9 12 13 14 22 23 25 29 35 37 39 41 43 49 ...
2 10 15 16 17 18 20 27 30 31 32 33 34 38 44 ...
3 21 24 26 28 42 45 46 50 51 54 55 56 57 64 66 68 70 ...
4 36 40 48 52 63 65 85 88 90 92 98 121 128 132 136 138 ...
5 60 72 78 84 96 104 105 108 112 114 135 140 156 162 164 ...
10 252 400 420 432 510 546 600 648 784 800 810 816 819 828 858 882 910 912 1040 1056 ...
Tak więc n=0
, otrzymujesz wynik tego wyzwania (zaczynając od 3
), ponieważ dostajesz liczby, które są palindromami w n=0
bazach.
Dla n=1
, 5
to palindrom w bazie 2
, a to jedyna podstawa 2 <= b <= (5-2)
, że jest to palindrom w. 7
Jest palindrom w bazie 2
, a to jedyna podstawa 2 <= b <= (7-2)
, że jest to palindrom w. Itd
Jeśli twój język nie obsługuje nieskończonego wyjścia, możesz przyjąć inną liczbę całkowitą z
jako dane wejściowe i wyjściowe pierwszych z
elementów sekwencji lub wszystkich elementów mniejszych niż z
. Którykolwiek wolisz. W takim przypadku proszę podać, które informacje zostały użyte w odpowiedzi.
źródło
n
bazach, a nie wn
większej liczbie baz?n
jest zbiorem liczb całkowitych>=3
.Odpowiedzi:
Galaretka , 18 bajtów
Wypróbuj online! - interpreter online przekroczy limit czasu po 60 sekundach, a następnie opróżni swoje wyjście (chyba że ma kopię w pamięci podręcznej), w trybie offline drukuje kolejno.
W jaki sposób?
Ocenia liczby od
n
góry, drukując je, jeśli są w sekwencji. Zauważ, że pierwsza liczba na dowolnym wyjściu będzie większa niż,n
ponieważ w przeciwnym razie zakresb
nie będzie wystarczająco duży, więc nie ma potrzeby inicjowania procesu3
. Zauważ również, że liczba palindromów od podstawy 2 do x i -2 włącznie jest tylko dwa razy mniejsza niż liczba palindromów od podstawy 1 do x .źródło
Mathematica,
8071 bajtówDzięki JungHwan Min za oszczędność 9 bajtów!
(
∞
to trzy bajtowy znak U + 221E.) Czysta funkcja przyjmująca nieujemną liczbę całkowitą jako dane wejściowe.i~IntegerReverse~Range[2,i-2]
tworzy listę odwrotności liczbyi
we wszystkich bazach od2
doi-2
; następnieLength[...~Cases~i]
liczy, ile z tych zwrotów jest równychi
ponownie.#!=...||Echo@i
zatrzymuje się cicho, jeśli ta liczba nie jest równa wartości wejściowej, i echa,i
jeśli jest równa wartości wejściowej. Ta procedura jest osadzona w prostej, nieskończonej pętli.źródło
Echo@i
Termin nie jest oceniana, gdy pierwszy argument jestTrue
. Czy mogę dodać to do Porady dotyczące gry w golfa w Mathematica ?Do[...,{i,3,∞}]
jest krótszy niż(i=2;While[1>0,... ++i ...])
iCases
działałby zamiastPosition
. -9 bajtów:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
Cases
działa świetnie zamiastPosition
. Ale przetestowałemDo
konstrukcję i nie działa ona dla mnie, ale nie mam pojęcia, dlaczego. Z jakiegoś powodu nie podłączai
wartości - dostaję błędy takie jak"Range specification in Range[2,-2+i] does not have appropriate bounds."
. (I wstawieniePrint[i];
weryfikacji, którai
nie ma przypisanych wartości.) Jakieś pomysły?,
i{
(prawdopodobnie coś wspólnego z systemem SE). To łamie kod, ponieważ znaki są uważane za zmienne. Mam nadzieję, że tego nie ma:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
EDYCJA: Nadal ma. Oto link do pastebinPyth,
211918 bajtówTo powinno działać w teorii. Działa poprawnie, jeśli podstawię nieskończoną pętlę na dowolną skończoną (np.
JQFbr3 50*`bqJlf_IjbTr2tb
Dla 3 do 50, spróbuj tutaj ), ale interpreter Pyth nie wie, kiedy i jak drukować dosłownie nieskończone wyjście.Wyjaśnienie:
źródło
Perl 6 , 90 bajtów
Spróbuj
źródło
Narzędzia Bash + Unix,
134132 bajtyWypróbuj online!
Dane wejściowe są przekazywane jako argument. Wyjście jest ustawione na standardowe wyjście.
Jeśli uruchomisz to normalnie, wyświetli się jedna liczba naraz w nieskończonej sekwencji.
Jeśli spróbujesz tego w TIO, wyświetli on tyle wyjścia, ile wygenerowało, gdy przekroczy 60 sekund.
źródło
Python 2, 132 bajty
Wypróbuj online
Do programu TIO dodano stopkę, więc nie trzeba czekać 1 minuty, aż program przekroczy limit czasu, zanim zobaczy wynik.
źródło