Machen Sie eine strahlungsgehärtete Quine


14

Letzte Nacht war ich auf der Suche nach dem Radiation Hardened Quine Challenge, konnte es aber nicht finden. Es stellte sich heraus, dass noch niemand danach gefragt hat! Hier ist es also:

Ihre Aufgabe ist es, ein Quine zu erstellen, dh ein nicht leeres Computerprogramm, das seine eigene Quelle druckt, ohne sie zu lesen. Wenn Sie außerdem ein Byte aus Ihrem ursprünglichen Programm entfernen, sollte das neue Programm die Quelle Ihres ursprünglichen Programms drucken.

Dies ist daher werden Antworten in Bytes bewertet, wobei weniger Bytes besser sind.



Ebenfalls verwandt (Vervielfältigung statt Löschung)
JungHwan Min

1
Wurde das nicht gefragt, seit 1,5 Jahren unbeantwortet und dann gelöscht, b / c das Benutzerkonto wurde gelöscht oder so? Ohne zu sagen, dass ich keinen will, obwohl +1. Ich schwöre nur, ich habe es gesehen.
Magic Octopus Urn

@MagicOctopusUrn Ich dachte, es existiert. Ich wollte es beantworten, konnte es aber nicht finden. Wenn jemand den alten findet, würde ich ihn gerne selbst hämmern.
Post Rock Garf Hunter

Ich kann es auch nicht finden. Ich muss langsam verrückt werden.
Magic Octopus Urn

Antworten:


7

Gol> <> , 49 45 Bytes

<<H~Kla}\`q%2l}}ss2"<\
<<H~Kla}\`q%2l}}ss2"<\

Probieren Sie es online!

Nachprüfung!

Ich habe dies in Gol> <> und nicht in> <> getan, weil der Kerste den praktischen Operator hat, der die obersten nElemente auf den Stapel kopiert , was das Duplizieren der sauberen Kopie des Quellcodes erleichtert.

Erläuterung:

Dies funktioniert, indem Sie zwei Kopien des ausführenden Codes haben und zur zweiten umleiten, wenn die erste beschädigt ist. Dies schlägt fehl, wenn der letzte \oder der mittlere Zeilenumbruch entfernt wird. Beide werden später kompensiert.

<<                       Redirect left 
                    <\  Switch to other source code if this line is irradiated
                   "     Push source with wrapping string literal
                ss2      Push quote
              }}         Move "< to end
          q%2l           If the length of the stack is not right
        \`               Push an extra \
       }                 Move the \ to the end
      a                  Newline
    Kl                   Duplicate the stack
   ~                     Pop the extra newline
  H                      Halt and print stack

Ich habe 2 Bytes abgespielt !!!
KrystosTheOverlord


Mir ist gerade aufgefallen, dass ich es komplett falsch gemacht habe. Tut mir leid, es gibt eine Reihe von Zeichen, bei denen das Programm einfach nicht funktioniert, wenn sie fehlen.
KrystosTheOverlord

@KrystosTheOverlord Sie können das Überprüfungsprogramm verwenden, um Ihre Programme zu testen
Jo King
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.