Ich habe das problem:
Zeigen Sie, dass es eine reelle Zahl gibt, für die kein Programm existiert, das unendlich lange läuft und die Dezimalstellen dieser Zahl schreibt.
Ich nehme an, es kann gelöst werden, indem man es auf das Halting-Problem reduziert, aber ich habe keine Ahnung, wie ich das tun soll.
Ich würde mich auch über Links zu ähnlichen Problemen für die weitere Praxis freuen.
algorithms
reductions
halting-problem
erfrischt
quelle
quelle
Объясните в одно предложение, почему существует такое вещественное число, для которого не существует программы, которая будет работать бесконечно долго и выписывать цифры его представления в десятичной системе счисления
. Hoffe, jemand wird meine Übersetzung verbessern.Antworten:
Wie Sebastian angibt, gibt es nur (unendlich aber) zählbar viele Programme. Listen Sie sie auf, um eine Liste von Programmen zu erstellen. Die Liste ist (unendlich aber) zählbar lang. Jedes Programm erzeugt eine Zahl in R. Daraus können wir eine (unendlich aber) abzählbare Liste von Zahlen in R erstellen. Jetzt können wir Cantors diagonales Argument direkt anwenden, um zu beweisen, dass es noch andere Zahlen geben muss.
Übrigens, wenn der Algorithmus (endliche) Argumente hat, können Sie dies einfach als "längere" Liste von Programmen umschreiben, bei denen jedes Programm keine Argumente hat.
In Bezug auf Ihren Kommentar "Was ist, wenn reelle Zahlen als Argument zulässig sind?" Ist die Prämisse der Frage falsch: Alle Zahlen in R können dann generiert werden. Wenn jemand eine Zahl findet, sagen wir 皮 und behaupten, dass sie nicht berechnet werden kann, haben wir den folgenden "Algorithmus":
und ruf func (皮) an
quelle
Es ist eigentlich viel einfacher. Es gibt nur eine abzählbare Anzahl von Algorithmen. Dennoch gibt es unzählige reelle Zahlen. Wenn Sie also versuchen, sie zu verbinden, bleiben einige reelle Zahlen hängen.
quelle
quelle
Die Zahl ist eine unendlich lange Zahl, die nach dem Komma jedenfalls alle Turingmaschinen codiert, die nicht anhalten. Mit dieser Nummer könnten Sie das Halteproblem lösen.
Sie können das TM in der Nummer "suchen" und parallel ausführen. Wenn TM anhält, hält es an. Wenn nicht, würden Sie "seinen Code in der Nummer finden".
Es gibt viele Modifikationen des Beweises und Sie sollten in der Lage sein, sie nach der ersten Komplexitätsstunde zu reproduzieren :-)
quelle
Ein Punkt bewegt sich auf einem Pfad um die Funktion y = 2x. Wenn die Abszisse eine nicht berechenbare Zahl ist, gibt es keine Möglichkeit für den Punkt, seinen Pfad zu berechnen, aber wir wissen, dass es weitergeht. Es können also überhaupt nicht berechenbare Zahlen existieren.
quelle