Aby dodać do tego, co powiedział Pål GD, pamiętaj, że uruchamiasz wszystkie programy o długości lub mniejszej i pozwalasz im działać przez co najwyżej sekundy. Możliwe, że istnieje program, który uzyska prawidłową odpowiedź o długości 100 znaków, ale uruchomienie zajmuje 120 sekund. Zadzwoń do tego programu . Na sprawdzisz ten program, ale jego uruchomienie trwa zbyt długo, więc musisz go odrzucić. Po sprawdzeniu wszystkich programów o długości 100 okazuje się, że żaden z nich nie udzielił właściwej odpowiedzi, więc wypróbowujesz programy o długości i wszystkie programy, które wypróbowałeś wcześniej . Więc spróbuj ponownieiiPi=100101 P, program, który (wiemy) da ci prawidłową odpowiedź, ale nadal trwa zbyt długo, więc musisz ją odrzucić. Kontynuujemy ten proces, aż dojdziemy do . Następnie wypróbowujemy wszystkie programy o długości , a kiedy dojdziemy do , pozwalamy mu działać wystarczająco długo, aby udzielić właściwej odpowiedzi. Potem przestajemy - znaleźliśmy algorytm, którego chcieliśmy. Iteracja, w której się znajdujemy to , ponieważ chociaż długość programu jest mniejsza (napisalibyśmy ), musieliśmy czekać, aż czas zajmie 120 sekund ( ). Więc oznacza po prostu maksimum długości programui=120≤120Pi=120P|P|=100s=120i=max{|P|,s}Pa ilość czasu zajęło, aby uruchomić .s
Innym sposobem, aby na to spojrzeć, jest program który potrzebuje sekund na uzyskanie poprawnej odpowiedzi, musimy sprawdzić przynajmniejiteracji, a przynajmniej iteracji, zanim będziemy go znaleźć, bo jeślito nie sprawdziliśmy jeszcze tego programu, a jeśli , to nie pozwoliliśmy programowi działać wystarczająco długo.Ps |P| si<|P|i<s
Pamiętaj, że ta metoda wyszukiwania gwarantuje uzyskanie odpowiedzi tylko, jeśli taka istnieje; nie ma gwarancji znalezienia najkrótszej lub najszybszej odpowiedzi. Powód tego powinien być oczywisty, jeśli weźmiesz pod uwagę, że proces kończy się, gdy tylko znajdzie program, który da prawidłową odpowiedź.