Diberikan bilangan bulat non-negatif n >= 0
, menghasilkan selamanya bilangan bulat bilangan bulat x_i >= 3
yang palindrom di n
basis yang persis berbeda b
, di mana basis bisa 2 <= b <= x_i-2
.
Ini pada dasarnya kebalikan dari OEIS A126071 , di mana Anda menampilkan indeks mana dalam urutan yang memiliki nilai n
. Agak berbeda, karena saya mengubahnya sehingga Anda mengabaikan basis b = x_i-1, x_i, x_i+1
, karena hasil untuk basis itu selalu sama (nilainya selalu palindrom atau selalu tidak). Juga, offset berbeda.
x_i
terbatas pada angka >= 3
sehingga istilah pertama dari hasil untuk masing-masing n
adalah A037183 .
Perhatikan bahwa format output fleksibel, tetapi angka-angka harus dibatasi dengan cara yang baik.
Contoh:
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 ...
Jadi untuk n=0
, Anda mendapatkan hasil dari tantangan ini (mulai dari 3
), karena Anda mendapatkan angka yang palindrom di n=0
pangkalan.
Karena n=1
, 5
adalah palindrome di basis 2
, dan itulah satu-satunya basis 2 <= b <= (5-2)
yang menjadi palindrome. 7
Adalah palindrome di dasar 2
, dan itulah satu-satunya basis di 2 <= b <= (7-2)
mana palindrome. Dll
Jika bahasa Anda tidak mendukung output yang tidak terbatas, Anda dapat mengambil integer lain z
sebagai input dan output z
elemen pertama dari urutan, atau semua elemen kurang dari z
. Apapun yang kamu inginkan. Harap sebutkan yang Anda gunakan dalam jawaban Anda jika ini masalahnya.
sumber
n
basis yang tepat , bukann
atau lebih basis?n
adalah himpunan bilangan bulat>=3
.Jawaban:
Jelly , 18 byte
Cobalah online! - penerjemah online akan kehabisan waktu 60 detik kemudian menyiram outputnya (kecuali jika memiliki salinan cache), offline akan mencetak masing-masing secara bergantian.
Bagaimana?
Mengevaluasi angka dari
n
atas, mencetaknya jika berurutan. Perhatikan bahwa angka pertama dalam output apa pun akan lebih besar daripadan
karena jika tidak rentangnyab
tidak cukup besar, sehingga tidak perlu menyemai proses dengan3
. Juga catat bahwa jumlah palindrom dari basis 2 ke x i -2 inklusif hanya dua kurang dari jumlah palindrom dari basis 1 ke x .sumber
Mathematica,
8071 byteTerima kasih kepada JungHwan Min karena telah menghemat 9 byte!
(
∞
adalah karakter tiga byte U + 221E.) Fungsi murni mengambil bilangan bulat tidak negatif sebagai input.i~IntegerReverse~Range[2,i-2]
membuat daftar pembalikan angkai
di semua pangkalan dari2
kei-2
; laluLength[...~Cases~i]
menghitung berapa banyak dari pembalikan ini yang sama dengani
lagi.#!=...||Echo@i
berhenti secara diam-diam jika jumlah itu tidak sama dengan input, dan bergemai
jika sama dengan input. Prosedur itu tertanam dalam loop tak terbatas langsung.sumber
Echo@i
Istilah tidak dievaluasi ketika argumen pertama adalahTrue
. Bisakah saya menambahkan ini ke Tips untuk bermain golf di Mathematica ?Do[...,{i,3,∞}]
lebih pendek dari(i=2;While[1>0,... ++i ...])
, danCases
akan berhasilPosition
. -9 byte:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
Cases
bekerja hebat di tempatPosition
. Tetapi saya mengujiDo
konstruksinya, dan itu tidak berhasil untuk saya, tetapi saya tidak tahu kenapa tidak. Untuk beberapa alasan, ini tidak memasukkani
nilainya — saya mendapatkan kesalahan seperti"Range specification in Range[2,-2+i] does not have appropriate bounds."
. (Dan memasukkanPrint[i];
verifikasi yangi
tidak diberi nilai.) Ada gagasan?,
dan{
(mungkin ada hubungannya dengan sistem SE). Itu memecah kode karena karakter dianggap variabel. Saya harap ini tidak memilikinya:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
EDIT: Masih memilikinya. Berikut tautan pastebinPyth,
211918 byteIni seharusnya bekerja secara teori. Ini berfungsi dengan baik jika saya mengganti loop tak terbatas dengan yang terbatas (misalnya
JQFbr3 50*`bqJlf_IjbTr2tb
untuk 3 hingga 50, coba di sini ), tetapi juru bahasa Pyth tidak tahu kapan atau bagaimana cara mencetak output yang benar-benar tak terbatas.Penjelasan:
sumber
Perl 6 , 90 byte
Cobalah
sumber
Utilitas Bash + Unix,
134132 byteCobalah online!
Input diberikan sebagai argumen. Outputnya ada di stdout.
Jika Anda menjalankan ini secara normal, itu akan menampilkan satu nomor pada suatu waktu dalam urutan yang tak terbatas.
Jika Anda mencoba ini di TIO, itu akan menampilkan sebanyak output yang dihasilkan ketika waktu 60 detik.
sumber
Python 2, 132 byte
Cobalah online
Program TIO memiliki catatan kaki yang ditambahkan sehingga Anda tidak perlu menunggu 1 menit hingga program berhenti sebelum melihat hasilnya.
sumber