Aufgabe
Die Aufgabe besteht darin, ein Programm zu schreiben, das eine konsistente, aber ansonsten willkürliche positive Ganzzahl ausgibt (also streng größer als 0). Hier ist der Haken: Wenn die Quelle mal wiederholt wird (der Code wird an sich selbst angehängt / verkettet ), sollte das Programm eine -Wahrscheinlichkeit für die Ausgabe von und die verbleibende Wahrscheinlichkeit von haben der Ausgabe von unverändert.
Beispiel
Nehmen wir an, Ihre ursprüngliche Quelle ist XYZ
und erzeugt die Ganzzahl 3
. Dann:
Für : sollte auch mit einer Wahrscheinlichkeit von (50% der Zeit) und mit einer Wahrscheinlichkeit von ausgegeben werden (50 % der ganzen Zeit).
XYZXYZ
Für : sollte mit einer Wahrscheinlichkeit von (66,666% der Zeit) und mit einer Wahrscheinlichkeit von (33,333% der Zeit) ausgegeben werden die Zeit)
XYZXYZXYZ
Für : sollte mit einer Wahrscheinlichkeit von (75% der Zeit) und mit einer Wahrscheinlichkeit von (25% der Zeit) ausgegeben werden die Zeit)
XYZXYZXYZXYZ
und so weiter....
Regeln
Sie müssen ein vollständiges Programm erstellen . Die Ausgabe muss auf STDOUT gedruckt werden.
Ihr Programm sollte theoretisch jeden möglichen Wert mit den oben angegebenen Wahrscheinlichkeiten ausgeben. Eine geringfügige Abweichung hiervon aufgrund der Implementierung von random ist jedoch in Ordnung ( vorausgesetzt, die Implementierung weist keine andere Verteilung auf - Sie können a nicht verwenden Normalverteilung, um Bytes zu sparen ) .
Das Programm sollte (theoretisch) für einen beliebig großen Wert von funktionieren , aber technische Einschränkungen aufgrund der Genauigkeit sind für große Ordnung .
Die Ausgabe muss in der Basis 10 erfolgen (die Ausgabe in einer anderen Basis oder mit wissenschaftlicher Notation ist verboten). Nachgestellte / führende Leerzeichen und führende Nullen sind zulässig.
Die ursprüngliche Quelle muss (natürlich) mindestens 1 Byte lang sein. Sie dürfen keinen Zeilenumbruch zwischen Kopien Ihrer Quelle annehmen. Das Programm sollte keine Eingaben annehmen (oder eine unbenutzte, leere Eingabe haben).
Dies ist Codegolf , daher ist die Punktzahl einer Antwort die Länge der (ursprünglichen) Quelle in Bytes, wobei eine niedrigere Punktzahl besser ist.
Anmerkung: Diese Herausforderung ist eine (viel) schwierigere Version von dieser .