Juste pour ajouter à ce que Pål GD a dit, rappelez-vous que vous exécutez tous les programmes de longueur ou moins et que vous les laissez fonctionner pendant au plus secondes. Il se peut donc qu'il existe un programme qui obtient la bonne réponse de 100 caractères, mais cela prend 120 secondes pour s'exécuter. Appelez ce programme . Sur vous vérifierez ce programme, mais son exécution est trop longue, vous le rejetez donc. Après avoir vérifié tous les programmes de longueur 100, vous ne trouvez aucun d'eux qui donne la bonne réponse, vous essayez donc les programmes de longueur et tous les programmes que vous avez essayés auparavant . Donc, vous réessayeziiPi=100101 P, le programme qui (nous le savons) vous donnera la bonne réponse, mais il prend encore trop de temps pour que vous le jetiez. Nous continuons ce processus jusqu'à ce que nous arrivions à . Ensuite, nous essayons tous les programmes de longueur , et quand nous arrivons à nous le laissons fonctionner suffisamment longtemps pour qu'il donne la bonne réponse. Ensuite, nous nous arrêtons - nous avons trouvé l'algorithme que nous voulions. L'itération sur laquelle nous sommes est , car bien que la longueur du programme soit inférieure (nous écririons ), nous avons dû attendre jusqu'à 120 secondes ( ). Donc signifie simplement le maximum de la longueur du programmei=120≤120Pi=120P|P|=100s=120i=max{|P|,s}Pet le temps qu'il a fallu pour appliquer l' .s
Ps |P| si<|P|i<s
Notez que cette méthode de recherche n'est garantie que si vous en avez une; il n'est pas garanti de trouver la réponse la plus courte ou la plus rapide. La raison de cela devrait être évidente si vous considérez que le processus se termine dès qu'il trouve un programme qui donne la bonne réponse.