Для того, щоб додати те, що сказав Pål GD, пам’ятайте, що ви запускаєте всі програми довжиною менше і дозволяєте їм запускатись не більше секунд. То може бути, що існує програма, яка отримує правильну відповідь довжиною 100 символів, але для запуску потрібно 120 секунд. Виклик цієї програми . У програмі ви перевірите цю програму, але це запускає занадто багато часу, щоб ви її відкинули. Перевіривши всі програми довжиною 100, ви виявите, що жодна з них не дає правильної відповіді, тому ви спробуйте програми довжиною та всі програми, які ви пробували раніше . Отже, ви спробуйтеi P i = 100 101 P i = 120 ≤ 120 P i = 120 P | П | = 100 s = 120 i = m a x { | П | , s } P siiPi=100101 P, програма, яка (ми знаємо) дасть вам правильну відповідь, але це все ще забирає занадто багато часу, щоб ви відкинули її. Ми продовжуємо цей процес, поки не досягнемо . Потім ми спробуємо всі програми довжиною , і коли ми дістаємось до ми даємо їй працювати досить довго, щоб дати правильну відповідь. Тоді ми зупиняємось - ми знайшли потрібний алгоритм. Ітерація, на якій ми перебуваємо, становить , оскільки хоча тривалість програми менша (ми би написали ), нам довелося чекати, поки кількість часу, що пройшло, складе 120 секунд ( ). Отже, просто означає максимум довжини програмиi=120≤120Pi=120P|P|=100s=120i=max{|P|,s}Pі кількість часу, яке знадобилося для запуску .s
Інший спосіб дивитися на це є для програми , який приймає секунд , щоб зробити правильну відповідь, ми повинні перевірити , по крайней мереітерації та принаймні ітерації, перш ніж ми їх знайдемо, тому що якщотоді ми ще не перевірили цю програму, і якщо то ми не дозволили програмі працювати досить довго.с | П | s i < | П | i < sPs |P| si<|P|i<s
Зауважте, що цей спосіб пошуку гарантовано отримає вам відповідь лише за наявності; не гарантується знайти найкоротшу або швидку відповідь. Причина цього повинна бути очевидною, якщо ви вважаєте, що процес припиняється, як тільки він знайде програму, яка дає правильну відповідь.