Balikkan kode Anda, balikkan OEIS

12

Tugas di sini adalah untuk menulis sebuah program yang mengambil nomor alam, , dan menghasilkan th jangka urutan Oei. Urutan itu harus memiliki pengenal dalam bentuk diikuti oleh 6 digit. Sekarang ketika Anda mengambil kode sumber dan membalik urutan byte itu untuk menghasilkan program baru, program itu juga harus menerapkan urutan OEIS. Urutan baru harus diidentifikasi dengan diikuti oleh 6 digit yang sama seperti terakhir kali tetapi dalam urutan terbalik (termasuk nol di depan).nnAA

Sekarang untuk mencegah hal-hal sepele, nomor pengenal OEIS atau program Anda tidak dapat menjadi palindrom. Itu adalah urutan dan program harus berbeda. Anda tidak dapat memilih urutan yang kebalikannya tidak ada atau kosong.

Untuk setiap urutan Anda, Anda dapat memilih untuk menggunakan pengindeksan 0 atau 1. Mereka tidak harus menggunakan pengindeksan yang sama. Karena beberapa urutan OEIS memiliki domain terbatas, Anda hanya perlu menampilkan angka yang benar untuk domain urutan tersebut. Perilaku Anda yang diperlukan tidak ditentukan di luar domain (Anda dapat menampilkan 0, mogok, memesan pizza, dll.).

Ini adalah sehingga jawaban akan dicetak dalam byte dengan lebih sedikit byte yang lebih baik.

Ad Hoc Garf Hunter
sumber
Apakah nol terkemuka dimasukkan dalam pembalikan nomor urut?
pppery
1
@pppery Mereka harus, karena angka OEIS memiliki tepat 6 digit. (itu juga secara eksplisit mengatakan demikian dalam pertanyaan)
Jo King
Bisakah kita mengambil input (indeks) sebagai string?
TFeld

Jawaban:

4

Perl 6 , 55 byte (A055642 dan A246550)

+*.comb#}]1-_$[)4+_$^**X]_$^[)*..2,emirp-si&(perg(tros{

Cobalah online!

Ini adalah anonim Apa pun lambda yang menerapkan urutan OEIS A055642 (panjang representasi desimal ) 0-diindeks.n

{sort(grep(&is-prime,2..*)[^$_]X**^$_+4)[$_-1]}#bmoc.*+

Cobalah online!

Kebalikannya adalah urutan A246550 (daftar mana adalah prima dan ) 1-diindeks.xexe4

Sebagian besar tantangan ini hanya menemukan urutan yang baik dengan pembalikan yang tidak terlalu rumit.

Pembaruan: Menggunakan jawaban torcado , ini bisa 19 byte (A010851 dan A158010)

{256*$_**2-$_}#{21}

Cobalah online!

Jo King
sumber
2

\ / \ /> , 15 14 byte ( A010851 dan A158010 )

cn;n*-1*"Ā":j

secara efektif cn, keluaran 12

j:"Ā"*1-*n;nc

efektif j:"Ā"*1-*n, n (256n-1)

terima kasih kepada teman untuk menemukan urutan yang sangat sederhana!

torcado
sumber
1

Haskell, 47 byte ( A000010 dan A010000 )

Kedua urutan relatif sederhana.

p n=sum[1|x<-[1..n],gcd x n<2]--2+n*n=n p;1=0 p

Cobalah online!

p n = fungsi total Euler dari n (A000010) (1-diindeks)

Terbalik:

p 0=1;p n=n*n+2--]2<n x dcg,]n..1[-<x|1[mus=n p

Cobalah online!

p n = 1 jika n = 0, jika tidak n ^ 2 + 2

Akan menarik untuk melihat jawaban yang tidak menggunakan komentar ...

Leo Tenenbaum
sumber
1

Python 2 , 59 byte (A030000 dan A000030)

f=lambda n,k=0:k if`n`in`2**k`else f(n,k+1)#]0[`n`:n adbmal

Cobalah online!

Menentukan fungsi f, mengembalikan suku ke- A dari A030000 (bilangan non-negatif terkecil sehingga ekspansi desimal berisi string ), diindeks 0k2kn

lambda n:`n`[0]#)1+k,n(f esle`k**2`ni`n`fi k:0=k,n adbmal=f

Cobalah online!

Fungsi anonim mengembalikan istilah ke-A A000030 (Digit awal ), diindeks 0n


Versi lebih pendek, yang mengambil string sebagai input (untuk kedua urutan), dan keduanya masih terindeks 0:

Python 2 , 56 byte

f=lambda n,k=0:`k`*(n in`2**k`)or f(n,k+1)#]0[n:n adbmal

Cobalah online!

lambda n:n[0]#)1+k,n(f ro)`k**2`ni n(*`k`:0=k,n adbmal=f

Cobalah online!

TFeld
sumber