Crea un programa que salga solo.
Sin embargo, si el código fuente se repite n veces (lo que significa concatenar una copia del código fuente hasta el final n-1 veces) , entonces debería haber una probabilidad de 1 / n de generar el código fuente original, una probabilidad de 1 / n de generar el código fuente se repite dos veces, una probabilidad de 1 / n de generar el código fuente repetido tres veces, ..., y una probabilidad de 1 / n de generar el código fuente n veces.
Por ejemplo, si su programa es foobar
, entonces siempre debería salir exactamente foobar
. Sin embargo, si se ejecuta foobarfoobarfoobarfoobar
, entonces debe haber una oportunidad de ¼ cada uno de salida foobar
, foobarfoobar
, foobarfoobarfoobar
y foobarfoobarfoobarfoobar
.
- La distribución de cada salida posible debe ser igual
- Además de la aplicación de métodos de E / S estándar y las lagunas legales prohibidas, se aplican las reglas de quine estándar (no se puede acceder a su propia fuente, etc.)
- Este es el código de golf, por lo que la respuesta más corta en bytes gana
foobarfoobar
), solo se imprimiráfoobar
foobarfoobar
sefoobar
repite dos veces, no una.Respuestas:
Perl 5 ,
8280 bytesPruébalo en línea! o conjunto de pruebas
fuente
Jalea ,
2422 bytesPruébalo en línea!
Pruébalo x4!
fuente
05AB1E , 32 bytes
Pruébalo en línea!
Explicación
fuente
Gol> <> , 21 bytes
Pruébalo en línea!
Explicación:
fuente
Alice , 35 bytes
Pruébalo en línea!
Explicación
Al igual que en muchos quines en lenguajes 2D, esto comienza con una
"
envoltura y empuja toda la primera línea, excepto la"
propia.Agregar una o más copias adicionales del código fuente colocará algunos espacios implícitos al final del literal de cadena. Para que esto sea realmente una quine, truncamos la pila a 31 caracteres.
Empuje una nueva línea, luego la altura de la pila tres veces. Los valores introducidos como altura de la pila son 32 (el espacio en la segunda línea), 33 (el
!
en la segunda línea) y 34 (el inicial"
).Empuje la altura de la pila nuevamente, esta vez como la longitud del código fuente original (35).
Inicialice un contador en 1. Esto contará la cantidad de veces que se repite el código fuente.
Gire a la derecha tres veces en su lugar (es decir, gire a la izquierda). Cada repetición adicional del código fuente contribuirá con una
h
en la misma columna que esta}
, incrementando así el contador. Cuando la IP regrese a la}
, gire nuevamente a la derecha para continuar en la misma dirección.Tome un número aleatorio uniforme de 0 a n-1, luego agregue 1 para obtener el número de veces para generar la fuente original.
Multiplique por la altura de la pila previamente empujada (longitud del código), luego repita lo siguiente tantas veces presionando una dirección de retorno tantas veces menos uno.
Salida de la parte superior de la pila sin destruirlo.
Mueva la entrada de la pila inferior a la parte superior.
Repita, luego termine después de que el ciclo haya terminado.
fuente
JavaScript (Node.js) , 62 bytes
Pruébalo en línea!
fuente
Carbón , 58 bytes
Pruébalo en línea! No hay una versión detallada porque el desverbosificador se ahoga actualmente
"´"
. Basado principalmente en la quine de carbón vegetal de Golf, ¡una quine para un gran bien! . Explicación:Asigne la cadena literal
θ⎚×⊕‽L⊞Oυω⁺⪫⁺´≔θ´´θ
aθ
.Borre cualquier salida anterior, de modo que solo la última salida surta efecto.
Empuje la cadena vacía a la matriz predefinida. Esto hace que la longitud de la matriz sea igual al número de repeticiones procesadas hasta ahora, así que tome su longitud, tome un número aleatorio como el rango exclusivo implícito, agregue 1 y repita la siguiente cadena muchas veces.
Anteponga la cadena literal
≔
aθ
, luego inserte´
s literales entre cada carácter, luego agregue otra copia deθ
.fuente