ist es möglich, ein Programm zu schreiben, das seinen eigenen Quellcode mit Hilfe einer "sequenzerzeugenden Funktion" ausgibt?
Was ich eine Sequenzerzeugungsfunktion nenne, ist einfach eine Funktion, die einen Wert außerhalb eines bestimmten Intervalls (d. h. druckbare ASCII-Zeichen (32-126)) zurückgibt. Der Punkt ist nun, dass diese erzeugte Sequenz der programmeigene Quellcode sein sollte. Wie Sie sehen, ist das Implementieren einer Funktion, die eine beliebige Sequenz zurückgibt, wirklich trivial, aber da die zurückgegebene Sequenz die Implementierung der Funktion selbst enthalten muss, ist dies eine sehr nicht-triviale Aufgabe.
So könnte ein solches Programm ( und seine entsprechende Ausgabe) aussehen
%Vor%Ich persönlich denke, dass es nicht möglich ist, aber da ich nicht viel über die zugrunde liegende Sache weiß, habe ich meine Gedanken hier gepostet. Ich freue mich wirklich darauf, einige Meinungen zu hören!
Wenn Sie wissen, wie man ein Array als Funktion codiert (Sie scheinen zu sagen, dass Sie bereits wissen, wie man das macht), dann ist Kleene Recursion Theorem garantiert, dass es möglich ist.
Aber um Thomas zu zweifeln, hier ist ein C-Beispiel. Es hat eine Programmgenerierungsfunktion, die nur +, -, *, / oder andere Funktionen verwendet, die sie verwenden.
Quines sind immer möglich, wenn Sie Turing Vollständigkeit und Freiheit haben, zu drucken, was Sie mögen.
Um an einer Tangente wegzufliegen, versuchen Sie Tuppers selbstbezügliche Formel .
Tags und Links c math complexity-theory quine