Compito
Il compito è scrivere un programma che produca un intero positivo coerente ma altrimenti arbitrario (quindi strettamente maggiore di 0). Ecco il trucco: quando la sorgente viene ripetuta volte (il codice viene aggiunto / concatenato a se stesso), il programma dovrebbe avere un probabilità di produrree probabilità rimanente di dell'outputinvariato.
Esempio
Supponiamo che la tua fonte iniziale sia XYZ
e produca il numero intero 3
. Poi:
For :
XYZXYZ
should output with a probability of (50% of the time) and with a probability of as well (50% of the time).For :
XYZXYZXYZ
should output with a probability of (66.666% of the time) and with a probability of (33.333% of the time)For :
XYZXYZXYZXYZ
should output with a probability of (75% delle volte) e con una probabilità di (25% delle volte)
e così via....
Regole
È necessario creare un programma completo . L'output deve essere stampato su STDOUT.
Il tuo programma dovrebbe, in teoria, produrre ogni possibile valore con le probabilità sopra indicate, ma una leggera deviazione da questo dovuta all'implementazione di random va bene (a condizione che l'implementazione non abbia una distribuzione diversa - non puoi usare un distribuzione normale per salvare byte ) .
Il programma dovrebbe (di nuovo, in teoria) funzionare per un valore arbitrariamente grande di , ma i limiti tecnici dovuti alla precisione vanno bene per grande .
L'output deve essere nella base 10 (è vietata l'uscita in qualsiasi altra base o con notazione scientifica). Sono ammessi spazi finali / iniziali e zero iniziali.
La sorgente iniziale deve (ovviamente) essere lunga almeno 1 byte. Si può non assumere una nuova linea tra le copie del vostro sorgente. Il programma non dovrebbe accettare input (o avere input vuoti inutilizzati).
Si tratta di code-golf , quindi il punteggio di una risposta è la lunghezza della sorgente (originale) in byte, con un punteggio più basso migliore.
Nota: questa sfida è una versione (molto) più dura di questa .