7 , 4 Bytes ASCII
1603
Probieren Sie es online!
Ich weiß, dass 7 normalerweise nicht in ASCII codiert ist, aber diesmal ist es eine bequemere Codierung, sodass wir bei jedem Lauf 1 Byte hinzufügen, nicht 3 Bits.
Ich bin mir auch nicht sicher, ob dies als Betrug gilt oder nicht. (Es ist normalerweise unklar, ob eine 7-Quine betrügt oder nicht, da sie auf verschiedene Weise die Grenze überspannt.) Sie können ein anständiges Argument dafür vorbringen, dass die Zeichen 0codiert 6, aber im Allgemeinen ist unklar, woher die resultierenden Zeichen kommen "in 7, weil es so viele, ziemlich bizarre, implizite Verhaltensweisen hat.
Dieses Programm druckt sich selbst mit 1angehängten Zeichen und wird dies auch dann tun, wenn Sie eine Reihe von 1s daran anhängen . Hier ist ein kommentierter Debug-Trace von 160311:
|| 160311 Initial data ||; initial program 160311
||7 60311 1 command = append 7 to data
|1 0311 6 command = escape from the last | onwards (7 escapes to 1)
|16e77 0311 commands = append 6e77 to data
|16e77 16e77 Implicit (program is empty): copy data past last | to program
|16e777 6e77 1 command = append 7 to data
71603111 e77 6 command = escape from the last | onwards
71603111 e77 e7 command = output in same encoding as the source
(Es sind keine |mehr im Programm, daher ewird das Programm sofort als Nebeneffekt beendet, was bedeutet, dass das Finale 7niemals ausgeführt wird.)
Die grundlegende Verwirrung darüber, woher alle Zeichen kommen, besteht darin, dass die meisten Befehle in 7 beim Ausführen nur Daten erzeugen und dann 6versuchen, eine Folge von Befehlen zu rekonstruieren, die das gegebene Datenfragment erzeugen würden. Dies endet oft in der Nähe des Originals, ist jedoch nicht mit diesem identisch. (Zu Quining-Zwecken schreiben Sie normalerweise ein 7-Programm so, dass das Ergebnis fast gleich ist und sich normalerweise in führenden oder nachfolgenden Werten unterscheidet 7.) So wird beispielsweise das 1in den Daten 716, was der einfachste Weg zum Anhängen ist 1auf den aktuellen Datenstring. Wir haben es ursprünglich mit 16einer anderen (aber ähnlichen) Zeichenfolge produziert und dabei eines der Zeichen destruktiv entfernt|Marker, mit denen die Daten begonnen haben. (Ich denke, das beste Argument dafür, dass dies keine reine Quine ist, ist, dass sich die Ausgabe von der Eingabe unterscheidet!)