C10 : Exercices
C10.E1 : Le paradoxe du menteur
La plus ancienne version connue du paradoxe du menteur a été formulée par Épiménide de Crète, poète et prophète grec du VIe siècle av. J-C. : « Tous les Crétois sont des menteurs. »
En voici une version plus récente :
« La phrase suivante est fausse. La phrase précédente est vraie »
Montrer par l'absurde que cette affirmation n'est pas possible.
C10.E2 : La conjecture de Syracuse
La conjecture de Syracuse est la suivante : "La suite de Syracuse de n'importe quel entier strictement positif atteint 1".
Une suite de Syracuse est une suite d'entiers naturels définie de la manière suivante :
- • si un est pair, alors un+1 = un/2 ;
- • si un est impair, alors un+1 = 3 × un + 1.
Actuellement encore, les mathématiciens n'ont pas réussi à dire si cette conjecture et décidable ou indécidable !!!
1) Écrire le code d'une fonction syracuse(u0, n) qui prend deux nombres entiers en paramètre (le premier étant la valeur de départ u0 et le deuxième le nombre de valeurs souhaité) et renvoie une liste contenant les valeurs de la suite de Syracuse de u0 à un.
2) La conjecture de Syracuse est-elle vérifiée pour les nombres suivants : 15, 27, 21
3) Pour chaque entier, on définit :
- - le temps de vol (ou durée de vol) : c'est le nombre d'étapes pour atteindre 1 ;
- - l'altitude maximale : la valeur maximale atteinte.
Écrire le code d'une fonction syracuse_duree_valmax(u0) qui renvoie la durée de vol et l'altitude maximale d'un nombre.
On sécurisera la fonction avec un nombre maximal de 1000 itérations, dans ce cas la fonction devra renvoyer "Vol trop long...".
>>> syracuse_duree_valmax(2)
(1, 2)
>>> syracuse_duree_valmax(3)
(7, 16)
>>> syracuse_duree_valmax(4)
(2, 4)
>>> syracuse_duree_valmax(27)
(111, 9232)
>>> syracuse_duree_valmax(2361235441021745907775)
'Vol trop long...'