Kode kata dalam urutan bilangan bulat

15

pengantar

Pareidolia : Dari Yunani Kuno; παρα ( para , “bersamaan, bersama”) + εἴδωλον ( eídōlon , “image”). Kecenderungan untuk menafsirkan stimulus samar sebagai sesuatu yang diketahui oleh pengamat, seperti menafsirkan tanda di Mars sebagai kanal, melihat bentuk di awan, atau mendengar pesan tersembunyi dalam musik. Sumber: Wiktionary .

Sebagai contoh:

masukkan deskripsi gambar di sini

Paralogia : Dari Yunani Kuno; παρα ( para , “bersamaan, bersama”) + λόγος ( lógos , "ucapan, orasi, kata, ..."). Kecenderungan untuk memahami kata-kata dalam urutan karakter yang sewenang-wenang, seperti dalam program golf kode. Sumber: ya, saya mengarangnya (sebenarnya kata itu berarti sesuatu yang lain , seperti yang ditunjukkan oleh @Martin).

Sebagai contoh:

    df4$/H)hEy_^p2\
    jtK2$)look|x1$

Tantangan

Tulis program yang menggunakan bilangan bulat positif sebagai input, menghasilkan bilangan bulat sebagai output, dan memasukkan kata bahasa Inggris sebagai bagian dari kode. Hubungan input-output harus sesuai dengan urutan integer yang dapat ditemukan di OEIS .

Aturan

  • Hanya kata-kata dari daftar ini yang diizinkan. Ini memang sewenang-wenang, tetapi penting bagi kita semua untuk menyetujui kata-kata mana yang diterima; dan dalam hal ini daftar ini mungkin sama baiknya dengan yang lain.
  • Kata-kata perlu dibentuk dengan menggabungkan setidaknya dua nama atau pernyataan fungsi. Jika bahasa Anda misalnya memiliki fungsi yang disebut correlationtidak dapat digunakan apa adanya. Rangkaian harus ketat: tidak ada simbol lain yang muncul di antara bagian kata. Misalnya, bro~kentidak akan dihitung sebagai kata.
  • Kasus tidak penting: keduanya validdan vaLiDdapat diterima.
  • Kata-kata dalam string tidak masuk hitungan. Huruf-huruf yang membentuk kata perlu fungsi atau pernyataan dalam bahasa pilihan, yaitu, sesuatu yang sebenarnya dieksekusi . Sebagai contoh, kode berikut tidak akan diizinkan:, di 'deoxyribonucleic'~1mana '...'string, ~membuang konten sebelumnya, dan 1hanya mencetak nomor 1.
  • Setiap huruf dari kata harus diperlukan . Ini berarti bahwa menghapus satu huruf dari kata harus mengubah hubungan input-output. Itu termasuk keluaran urutan yang berbeda, atau keluaran hal lain, atau tidak menghasilkan keluaran, atau menyebabkan kesalahan.
  • Setiap bilangan bulat positif harus dapat diterima sebagai input, dan harus menghasilkan output, kecuali untuk tipe data atau batasan memori.
  • Output sesuai dengan input 1, 2, 3, ... harus sesuai dengan urutan muncul di Oei . Tidak ada output lain yang diproduksi; hanya angka integer, mungkin dengan spasi tambahan atau spasi terdepan.
  • Input dan output dapat berupa argumen fungsi atau stdin / stdout.

Skor

Skor dihitung sebagai panjang kode total dikurangi dua kali panjang kata terpanjang, dalam karakter. Atau dengan kata lain, jumlah karakter tidak-dalam-kata terpanjang dikurangi panjang kata terpanjang.

Skor terendah menang.

Contohnya

Pertimbangkan bahasa postfix imajiner yang memiliki fungsi-fungsi ini c:: masukkan nomor; At: hitung kuadrat; $: tambahkan 1.

cAtakan menjadi program yang valid (output berkorespondensi ke urutan 1, 4, 9, ..., yang A000290 ), dan itu akan memiliki skor -3.

cAt$juga akan berlaku (urut 2, 5, 10, ..., yang A002522 ), dengan skor -2.

c$At tidak akan valid, karena satu-satunya kata di sini adalah "Di" dan diproduksi oleh satu fungsi atau pernyataan.

Luis Mendo
sumber
Saya pikir ini harus menjadi kontes popularitas.
MCMastery
5
@MCMastery Ini tidak akan membuat kontes popularitas yang baik. (Sebagian besar tantangan tidak akan.)
Alex A.
Ini pada dasarnya terbatas pada bahasa golf saja.
ericw31415

Jawaban:

11

CJam, -20

COUNTErREVOLUTIONARIES],

Menghasilkan elemen ke-n dalam urutan A010861 .

COUNTE                      e# push values of six preinitialized variables
      r                     e# read a token of input
       REVOLUTIONARIES      e# push values of 15 other preinitialized variables
                      ]     e# wrap whole stack in array
                       ,    e# get length

Menghapus karakter dari kata menghasilkan urutan A010860 yang sangat berbeda . Ada hubungan yang cukup menarik antara dua urutan: pada setiap indeks n, A010860(n)adalah coprime to A010861(n)! Pasti ada beberapa alasan matematika yang mendalam di balik ini.

Coba di sini .

lirtosiast
sumber
1
Saya telah menemukan hubungan matematika yang aneh: jika Anda mengurangi urutan A010860 dari urutan A010861, hasilnya selalu sama dengan 1 di setiap indeks! Menarik ...
Gagang Pintu
Yang ini akan sulit dikalahkan :-)
Luis Mendo
Oh, huruf besar .. Ide bagus :)
Martin Ender
10

CJam, -5

limpet;

A010051 : mencetak 0untuk angka komposit dan 1untuk bilangan prima.

Saya butuh selamanya untuk menemukan sesuatu yang mencetak beberapa poin dan akan pecah pada penghapusan surat apa pun. Menghapus apa pun kecuali mmelempar kesalahan, dan menghapus mmengubah program menjadi fungsi identitas.

li  e# Read input and convert to integer.
mp  e# Check for primality.
et  e# Get current datetime as a list.
;   e# Discard the datetime again.

Cobalah online.

Martin Ender
sumber
Pilihan urutan yang indah! :-)
Luis Mendo
8

05AB1E , -4 -11

Kode, mencetak A010869 (konstan 30):

ASYNcHRonouSlyI)g

Kode sebelumnya:

DoGS

Penjelasan:

D     # Duplicate top of the stack
 o    # Pop a, push 2**a
  G   # For N in range(1, 2**a):
   S  # Push all chars seperate from the top of the stack

Mencetak urutan A010879 .

Adnan
sumber
Itu urutan yang paling menarik sejauh ini!
Luis Mendo
2
Coret -4 masih reguler -4; (
ETHproduksi
6

MATL , −6

INhale

Cobalah online!

Menghasilkan urutan 1, 2, 3, ... ( A000027 )

Menghapus huruf apa pun akan mengubah output, atau membiarkan program mengharapkan input kedua yang tidak ada, atau menghasilkan kesalahan.

Penjelasan

Program ini hanya menghirup angka dan, setelah beberapa mengotak-atik, menghembuskannya tidak berubah.

I    % produces number 3
N    % number of elements in stack: produces number 1
h    % concatenates horizontally into array [3, 1]
a    % true if any element is nonzero. So it gives true (or equivalently 1)
l    % produces number 1
e    % triggers implicit input and reshapes into a 1x1 array. So it leaves input unchanged
Luis Mendo
sumber
5

Pyth, 1

*QhSatan0000
   Satan

Penjelasan?

       n00   - 0 != 0 (0) 
      a   0  - abs(^-0) (0, Required so it doesn't print out a random 0)
     t       - ^-1 (-1, required or will output 0 all the time)
    a      0 - abs(^-0) (1, Required so counts in right direction, would also print out a random 0)
   S         - 1-indexed range ([1], required so next command works properly)
  h          - Get the head (if `S` missed, will out 2)
*Q           - Multiply by Q

1, 2, 3, 4, 5 ...

Urutan A000027

Pesan bawah sadar? Tidak pernah.

Coba di sini.

Biru
sumber
4

Japt, -6

NuLLIFIED)r^

Output A004453 : nimsum dari N dan 12 (N XOR 12). Uji secara online!

Catatan: urutan OEIS diindeks 0, sehingga input 0 akan menghasilkan item pertama.

Bagaimana itu bekerja

        // Implicit: N = array of inputs
Nu      // Push the following things to N:
LLIF    // 100, 100, 64, 15,
IED     // 64 again, 14, and 13.
)r^     // Reduce by XORing (using ^ between each pair)
        // The reduction goes as follows: U, U^100, U, U^64, U^79, U^15, U^1, U^12.
Produksi ETH
sumber
Bagus! Ada penjelasan, kapan bisa?
Luis Mendo
@LuisMendo Tentu, selesai. Ini sangat sederhana, tetapi saya belum menemukan sesuatu yang lebih kompleks.
ETHproduksi
@LuisMendo Diperbarui. Yang ini sedikit lebih menarik.
ETHproduksi
Memang! Tetapi ternyata menghapus Ymenghasilkan hasil yang sama? (kecuali saya melakukan sesuatu yang salah)
Luis Mendo
@Luis Apakah ini lebih baik?
ETHproduksi
3

Headecks , skor −4

exit

Ini memetakan ke program Brainfuck ,+-., yang membaca satu karakter dan mencetaknya, menghitung A000030 . Menghapus karakter apa pun jelas akan merusaknya.

Ada juga marshal( ,-<>+-.), yang efektif ,-., tetapi itu tidak sesuai dengan urutan OEIS.

Lynn
sumber
2

kode mesin x86, skor -4

Hexdump kode:

53 51 55 41 53 68 69 65 73 74 51 58 83 c4 14 c3

Atau, dalam kode halaman 437 :

SQUAShiestQXâ─¶├

Kode perakitan:

push ebx
push ecx
push ebp
inc ecx
push ebx
push 0x74736569
push ecx
pop eax
add esp, 0x14
ret

Fungsi yang menambahkan 1 ke argumennya .

Menghapus Amengubahnya menjadi fungsi identitas. Menghapus byte lain akan mengacaukan tumpukan, menyebabkan kerusakan atau perilaku buruk fungsi panggilan.

Saya cukup yakin itu mungkin untuk meningkatkan skor, tetapi mungkin tergantung pada interpretasi persyaratan. Misalnya, menggunakan kata SQUEAMIShnessmemberi program, yang meningkat dan kemudian mengurangi ebpregister. Apakah menghapus salah satu dari ini menyebabkan kerusakan? Program uji paling sederhana tidak menggunakan ebpregister, jadi mungkin tidak ... Untuk menghindari keraguan ini, saya menggunakan kata yang lebih pendek.

anatolyg
sumber
1

Ruby, skor 3

puts gets.partition''

Ini menghitung urutan identitas A000027 . Keluaran dikelilingi oleh beberapa spasi putih; Saya harap tidak apa-apa.

Lynn
sumber
Ya, ruang putih tidak apa
Luis Mendo
1

Matematika ++, skor -2

?*sine

Menerapkan A000004 .

SuperJedi224
sumber