Rantai Golf (Benang Perampok)


8

Ini adalah tantangan Polisi dan Perampok. Untuk utas Polisi, buka di sini .

Polisi punya tiga tugas.
1) Pilih urutan dari OEIS .

2) Pilih bahasa (ini disarankan sebagai golflang, tetapi tidak harus) bahwa, ketika diberi input n, output A(n)(di mana A(n)urutan dipilih) menggunakan semua aturan biasa .
Sebut bahasa ini L A dan kode C A .
Misalnya, Jelly dan Jelly_code .

3) Kemudian, memilih bahasa yang berbeda (ini disarankan untuk menjadi non-golflang, tetapi tidak harus) dan menulis kode yang tidak mengambil input dan output kode C A , lagi mengikuti semua biasa aturan. (Catatan:. Ini dapat dikaburkan kode dan tidak selalu perlu golfed, tapi lagi kode ini adalah mudah akan untuk perampok retak kiriman Anda)
Sebut ini bahasa L B dan kode C B .
Misalnya, Python dan Python_code .

Pengajuan Cop untuk tantangan ini adalah urutan (ditentukan apakah 0 atau 1 diindeks), nama dua bahasa L A dan L B (dan yang mana memecahkan bagian mana), dan byte-count dari C B saja. Jaga kode aktual dari kedua bagian, dan panjang C A , rahasia.

Tantangannya perampok ini adalah untuk memilih Polisi masuk dan menulis kode C C dalam yang sama L B bahasa yang output beberapa kode dalam yang sama L A bahasa yang memecahkan tugas Oei asli. Panjang C C bisa tidak lebih dari panjang C B seperti yang diungkapkan oleh polisi (meskipun mungkin lebih pendek). Catatan: Kode yang dihasilkan oleh C C tidak tidak harus cocok C A .

Sebagai contoh kita, ini berarti bahwa Perampok harus menulis kode Python yang menampilkan kode Jelly yang memecahkan urutan OEIS asli, dan bahwa kode Python harus tidak lebih dari panjang yang diungkapkan oleh Cop.

Kondisi menang

Perampok dengan solusi paling retak menang.

Jawaban:


6

Brain-Flak , 90 byte oleh Mr. Xcoder

((((((((((()()()){}){}){({}[()])}{}())[(((()()()){})){}{}()]))){}{}()()())([][][]){})[][])

Cobalah online!

Output ini:

ÑÉ·<O

Jawaban 05AB1E pertama!

Bagaimana cara kerjanya?

Katakanlah kita memiliki 24 sebagai input.

Ñ       # Divisors. 
        # Stack: [1, 2, 3, 4, 6, 8, 12, 24]
 É      # Odd?
        # Stack: [1, 0, 1, 0, 0, 0, 0, 0]
  ·     # Double
        # Stack: [2, 0, 2, 0, 0, 0, 0, 0]
   <    # Decrement
        # Stack: [1, -1, 1, -1, -1, -1, -1, -1]
    O   # Sum
        # Stack: -4

Kode brain-flak sebagian besar hanya menggunakan trik untuk mendorong sejumlah besar dalam beberapa byte. Sangat nyaman (dan tidak disengaja) bahwa nilai ASCII sebagian besar meningkat:

209
201
183
60
79

Ini juga bagus 60 * 3 ~=~ 183sehingga tiga kali lipat dan menambahkan beberapa dapat menghemat banyak byte.

((((((

    # Push 79
    ((((()()()){}){}){({}[()])}{}())
    # Minus 19 (60)

    [(((()()()){})){}{}()])
    # Push that two extra times
    ))

    # Push that ^ (60) Plus the two extras popped (60 + 120 == 180)...
    {}{}
    # + 3 (183)
    ()()())

    # Plus stack-height * 3 * 2 == 3 * 3 * 2 == 18 (201)
    ([][][]){})

    # Plus stack-height * 2 == 4 * 2 == 8 (209)
    [][])

oh bagus program 05AB1E saya adalah 8 byte. idk salah satu builtins 05AB1E / mengangkat bahu: P
HyperNeutrino



2

Jelly , 34 byte oleh Arnauld

Dikelola satu byte lebih pendek dari solusinya!

“`Ḃ|⁴ʂⱮdÐỌK_ƬƬfıæh’ṃ“fnk1()+-,=>?:

Cobalah online!

Ini menghasilkan fungsi JS

f=(n,k=1)=>n>=k?f(n-k,k)+f(n,k+1):1>n

yang menghitung A000041 (0-diindeks; nn(0)kembali truedi tempat 1).





Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.