Für jede berechenbare Funktion gibt es ein Problem, das bestenfalls in Zeit gelöst werden kann, oder gibt es eine berechenbare Funktion so dass jedes Problem, das in gelöst werden kann, gelöst werden kann auch in Zeit gelöst werden?
Diese Frage tauchte gestern in meinem Kopf auf. Ich habe jetzt ein bisschen darüber nachgedacht, kann es aber nicht herausfinden. Ich weiß nicht wirklich, wie ich das googeln soll, also frage ich hier. Folgendes habe ich mir ausgedacht:
Mein erster Gedanke war, dass die Antwort ja lautet: Für jede berechenbare Funktion das Problem "Ausgabe von Punkten" (oder Erstellen einer Zeichenfolge mit Punkten oder was auch immer) offensichtlich nicht in ) gelöst werden Zeit. Wir müssen also nur zeigen, dass es in Zeit gelöst werden kann . Kein Problem, nimm einfach den folgenden Pseudocode:
x = f(n)
for i from 1 to x:
output(".")
Dieser Algorithmus löst eindeutig das angegebene Problem. Und es ist Laufzeit ist offensichtlich in , also Problem gelöst. Das war einfach, oder? Außer nein, das liegt nicht daran, dass Sie die Kosten für die erste Zeile berücksichtigen müssen. Die Laufzeit des obigen Algorithmus liegt nur in wenn die zur Berechnung von erforderliche Zeit in . Dies gilt natürlich nicht für alle Funktionen 1 .O ( f ( n ) )
Dieser Ansatz brachte mich also nicht weiter. Ich wäre dankbar, wenn jemand mich in die richtige Richtung weisen würde, um dies richtig herauszufinden.
1 Betrachten Sie zum Beispiel die Funktion . Es ist klar, dass , aber es gibt keinen Algorithmus, der in O (1) berechnet .