Escriba dos fragmentos de código, que llamaremos s_zero y s_one.
El programa (l, n) consiste en l copias de s_zero y s_one correspondientes a los dígitos de n en binario, rellenadas con s_zero a la izquierda.
Por ejemplo, si s_zero = foo
y s_one = bar
entonces
Program (4, 0) = foofoofoofoo
Program (4, 1) = foofoofoobar
Program (4, 2) = foofoobarfoo
etc.
El programa (l, n) debe imprimir la fuente del programa (l, (n + 1) mod (2 ^ l)) a la salida estándar. En el ejemplo anterior, foobarfoofoo
debe imprimir foobarfoobar
cuando se ejecuta.
Su puntaje es la suma de las longitudes de los fragmentos s_zero y s_one
code-golf
quine
source-layout
QuadmasterXLII
fuente
fuente
Respuestas:
CJam, 29 + 29 = 58 bytes
El código 0:
El 1 código:
Explicación
fuente
CJam, 47 + 47 = 94 bytes
El código 0:
El 1 código:
Disculpe el improperio.
Estoy seguro de que todavía puedo reducir algunos bytes allí. Agregaré una explicación una vez que decida que no puedo molestarme más en jugar golf.
Pruébalo aquí.
fuente
CJam, 45 + 45 = 90 bytes
El código 0 :
El 1 código:
Explicación pronto.
Pruébalo en línea aquí
fuente
GolfScript, 37 + 37 = 74 bytes
No es tan corto como la solución CJam de user23013 , pero pensé que publicaría esto de todos modos, aunque solo fuera (marginalmente) para aumentar la diversidad de los idiomas utilizados.
Mi solución no se basa directamente en ninguna de las soluciones existentes (y, de hecho, no las he examinado en detalle, ya que todavía no leo CJam muy bien), pero todas presentan variantes de la misma estructura básica de quine (
{".~"}.~
en GolfScript,{"_~"}_~
en CJam). Eso no es realmente muy sorprendente, ya que parece ser una de las formas más eficientes de escribir un quine con una carga útil arbitraria en estos idiomas.Hay varias partes de este código que realmente no me gustan, y sospecho que es posible jugar golf más allá, pero he pasado demasiado tiempo en esto.
fuente