25-NSIJ1JA1-1
-
À la fin de l'exécution du programme, la variable
xcontient 0 etycontient 20. -
Un programme Python est une suite de caractères enregistrée dans un simple fichier textuel d'extension
.py. Il peut donc être vu comme une simple chaîne de caractères. -
Les programme 3 et 5 se terminent. Les programmes 4 et 6 ne se terminent pas.
-
La fonction
arret_essai1renvoieTruesi le programme donné en paramètre s'arrête. Dans le cas où ce programme ne s'arrête pas, alorsarret_essai1ne s'arrête pas non plus. Elle ne permet donc pas de répondre au problème initial, car elle ne renvoie pasFalsequand le problème ne s'arrête pas. -
L'algorithme de Boyer-Moore permet de rechercher efficacement un motif dans un texte. Il repose sur une comparaison à l'envers des caractères du motif avec ceux du texte et sur la construction au préalable, à partir du motif, de tables de décalage. Ces tables indiquent, selon les caractères rencontrés, de combien on peut avancer au mieux la fenêtre de recherche sans risquer de manquer une occurrence, ce qui permet d'éviter de nombreuses comparaisons inutiles.
-
-
Un programme peut ne pas s'arrêter et pourtant ne pas contenir de boucle
while. Un exemple notable :Cependant, ce programme « théorique » se terminera en pratique en renvoyant l'erreur
RecursionErroraprès un trop grand nombre d'appels récursifs. -
Et un programme peut s'arrêter et contenir une boucle
while, comme les programmes 3 et 5 de l'exercice.
-
-
-
Si
programme_paradoxaltermine, alorsterminaison_inverse(programme_paradoxal)termine aussi. Par définition de la fonctionterminaison_inverse, cela implique queprogramme_paradoxalne termine pas : contradiction. -
Inversement, s'il ne termine pas, alors
terminaison_inverse(programme_paradoxal)ne termine pas non plus, ce qui implique queprogramme_paradoxaltermine : contradiction.
Dans tous les cas, on aboutit à une contradiction :
programme_paradoxalne peut ni terminer ni ne pas terminer. -
-
Cette contradiction montre que l'hypothèse de départ, l'existence de la fonction
arret, est fausse. La fonctionarretne peut pas exister. -
Non, cette impossibilité n’est pas due aux limitations du langage Python. Le problème de l'arrêt est indécidable pour tout langage Turing-complet.