Cadena de golf (hilo de ladrones)


8

Este es un desafío de policías y ladrones. Para el hilo de los policías, ve aquí .

Los policías tienen tres tareas.
1) Elija una secuencia del OEIS .

2) Elija un idioma (se sugiere que este sea un argot de golf, pero no tiene que serlo) que, cuando se le da entrada n, sale A(n)(donde A(n)se elige la secuencia) utilizando todas las reglas habituales de .
Llame a este lenguaje L A y el código C A .
Por ejemplo, Jelly y Jelly_code .

3) Luego, elija un idioma diferente (se sugiere que esto no sea un argot de golf, pero no tiene que serlo) y escriba un código que no tenga entrada y salga el código C A , nuevamente siguiendo todas las reglas habituales de . (Nota:. Este código puede ser ofuscado y no necesita necesariamente ser golfed, pero cuanto más tiempo este código es el más fácil será para que los ladrones de roer su presentación)
Llame a este lenguaje L B y el código C B .
Por ejemplo, Python y Python_code .

La sumisión del policía a este desafío es la secuencia (especificada ya sea 0 o 1 indexada), el nombre de los dos idiomas L A y L B (y cuál resuelve qué parte), y el recuento de bytes de C B solamente. Mantenga el código real de ambas partes, y la longitud de C A , en secreto.

El desafío del ladrón es seleccionar la entrada de un policía y escribir el código C C en el mismo lenguaje L B que genera algún código en el mismo lenguaje L A que resuelve la tarea original de OEIS. La longitud de C C no puede ser mayor que la longitud de C B según lo revelado por el policía (aunque puede ser más corta). Nota: El código producido por C C no no tiene que coincidir con C A .

Para nuestro ejemplo, esto significa que el Ladrón tiene que escribir el código Python que genera el código Jelly que resuelve la secuencia OEIS original, y que el código Python no debe ser más largo que la longitud revelada por el Cop.

Condiciones ganadoras

El ladrón con las soluciones más agrietadas gana.

Respuestas:


6

Brain-Flak , 90 bytes por el Sr. Xcoder

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

Pruébalo en línea!

Esto produce:

ÑÉ·<O

Primera 05AB1E respuesta!

¿Como funciona?

Digamos que tenemos 24 como entrada.

Ñ       # 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

El código brain-flak usa principalmente trucos para empujar grandes números en pocos bytes. Fue muy conveniente (y no intencional) que los valores ASCII estén aumentando en su mayoría:

209
201
183
60
79

También es bueno que 60 * 3 ~=~ 183triplicarlo y agregar algunos puede ahorrar una tonelada de bytes.

((((((

    # 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, bueno, mi programa 05AB1E tenía 8 bytes. idk cualquiera de los 05AB1E incorporados / encogimiento de hombros: P
HyperNeutrino



2

Jelly , 34 bytes por Arnauld

¡Gestionó un byte más corto que su solución!

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

Pruébalo en línea!

Esto genera la función JS

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

que calcula A000041 (indexado a 0; nn(0)devuelve trueen lugar de 1).





Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.