Tarea
La tarea es escribir un programa que genere un entero positivo consistente pero arbitrario (por lo tanto estrictamente mayor que 0). Aquí está el truco: cuando la fuente se repite veces (el código se agrega / concatena consigo mismo), el programa debe tener una probabilidad de generar y la probabilidad restante de de generar sin cambios.
Ejemplo
Supongamos que su fuente inicial es XYZ
y produce el entero 3
. Luego:
Para : debería generar con una probabilidad de (50% del tiempo) y con una probabilidad de también (50 % del tiempo).
XYZXYZ
Para : debería generar con una probabilidad de (66.666% del tiempo) y con una probabilidad de (33.333% de el tiempo)
XYZXYZXYZ
Para : debería generar con una probabilidad de (75% del tiempo) y con una probabilidad de (25% de el tiempo)
XYZXYZXYZXYZ
y así....
Reglas
Debes construir un programa completo . La salida debe imprimirse en STDOUT.
Su programa, en teoría, debería generar cada valor posible con las probabilidades indicadas anteriormente, pero una ligera desviación de esto debido a la implementación de aleatorio está bien ( siempre que la implementación no sea de una distribución diferente; no puede usar un distribución normal para guardar bytes ) .
El programa debería (nuevamente, en teoría) trabajar para un valor arbitrariamente grande de , pero las limitaciones técnicas debido a la precisión están bien para grande .
La salida debe estar en base 10 (la salida en cualquier otra base o con notación científica está prohibida). Se permiten espacios finales / iniciales y ceros iniciales.
La fuente inicial debe (por supuesto) tener al menos 1 byte de longitud. Es posible que no asumirá una nueva línea entre las copias de su fuente. El programa no debe tomar entrada (o tener una entrada vacía no utilizada).
Este es el código de golf , por lo que la puntuación de una respuesta es la longitud de la fuente (original) en bytes, siendo mejor una puntuación más baja.
Nota: Este desafío es una versión (mucho) más difícil de esta .