1 ©Arnaud de Saint Julien - MPSI Lycée La Merci 2016-2017 Devoir maison n°2 d’informatique pour jeudi 3 novembre Il est conseillé d’imprimer ses scripts Python et de bien les documenter. Suite de Syracuse Considérons l’encadré : The following iterative sequence is defined for the set of positive integers : n → n/2 (if n is even) n → 3n + 1 (if n is odd) Using the rule above and starting with 13, we generate the following sequence : 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1. Which starting number, under one million, produces the longest chain ? NOTE : Once the chain starts the terms are allowed to go above one million. Le but du devoir est de résoudre le problème proposé dans l’encadré. On traitera pour cela les questions ci-dessous : On note f la fonction définie sur N par f (n) = n 2 si n est pair et f (n) = 3n + 1 sinon. Si c ∈ N∗ , on note u la suite 1 récurrente définie par u1 = c et ∀n ∈ N∗ , un+1 = f (un ) Avec c = 13, on a conformément à l’encadré u1 = 13, u2 = 40, u3 = 20, u4 = 10, u5 = 5, u6 = 16, u7 = 8, u8 = 4, u9 = 2, u10 = 1. On dit alors que la longueur de la chaîne formée par u vaut 10 et que la valeur maximale de cette chaîne est u2 = 40. 1. Écrire un script Python qui code la fonction f . 2. Écrire une fonction longueur_chaine qui prend en argument un entier c ∈ N∗ et renvoie le plus entier n tel que un = 1 (lorsque u1 = c). Par exemple, longueur_chaine(13) renverra 10. 3. Écrire une fonction max_chaine qui prend en argument un entier c ∈ N∗ et renvoie la plus grande valeur de un (lorsque u1 = c). Par exemple, max_chaine(13) renverra 40. 4. Répondre à la question posée dans l’encadré. 1. Cette suite porte le nom de suite de Syracuse ou suite de Collatz. La conjecture de Syracuse est l’hypothèse mathématique selon laquelle, n’importe quel entier au départ conduit à la valeur 1 au bout d’un certain temps. Personne n’a à ce jour réussi à prouver cette conjecture.