Clemmellian Posté(e) le 21 février 2021 Auteur Signaler Posté(e) le 21 février 2021 Non pas trop, fin j'ai compris que c'était un cycle Citer
E-Bahut PAVE Posté(e) le 21 février 2021 E-Bahut Signaler Posté(e) le 21 février 2021 Pour la b, 𝑢%2 == 0 dans cette expression, il y a 2 nouveautés (peut-être ?) 1) le symbole ou opérateur % qui comme il a été dit renvoie ici le reste de la division entière (euclidienne) du nombre entier u (dividende) par le nombre 2 (diviseur). Or dans une telle division, ce RESTE ne peut prendre que 2 valeurs : soit 0 si u est divisible par 2 (u est pair) soit 1 si u est impair. 2) le double signe égal ==, qui établit une comparaison entre le membre de gauche (le reste qui vaut 0 ou 1, voir ci dessus) et le nombre figurant à droite (ici 0). Le test if regarde s'il y a ÉGALITÉ entre "le reste de la division de u par 2" et 0. si cette égalité est VRAIE (𝑢%2 == 0 ), le nombre u est pair et prend alors une valeur qui est ...u/2 si cette égalité est fausse (donc 𝑢%2 != 0 le signe double != signifie "différent de" soit ), alors le nombre u est impair et prend une nouvelle valeur qui est 3*u+1. La fonction Syracuse(u),fait correspondre à un nombre entier u quelconque, un autre nombre qui selon la parité de u est soit u/2 si u est pair, soit 3u+1 si u est impair. Dans le contexte d'une suite de Syracuse, cette fonction permet de passer d'un terme un à son suivant un+1 Citer
Clemmellian Posté(e) le 22 février 2021 Auteur Signaler Posté(e) le 22 février 2021 Merci bcp Pour la 3a) je trouve : [14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1] comme résultat Citer
E-Bahut julesx Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 C'est ça. Citer
Clemmellian Posté(e) le 22 février 2021 Auteur Signaler Posté(e) le 22 février 2021 Merci Ensuite pour la question 3 je ne comprends pas trop Citer
E-Bahut julesx Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 3)b) C'est pourtant simple, recherche dans la documentation ou sur la toile ce que fait append. 3)c) Pour moi, la question n'est pas claire. De deux choses l'une, ou la conjoncture est vraie, et Liste_Syracuse(n) aboutit, donc retourne bien une liste, ou la conjoncture est fausse et Liste_Syracuse(n) n'aboutit pas et "tourne en rond". Dans ce dernier cas, on peut considérer que cette fonction ne retourne rien. PAVE, qu'en penses-tu ? Citer
E-Bahut PAVE Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 Question 3 a) remarque 🤔 Citer
E-Bahut julesx Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 Le 22/02/2021 à 12:55, PAVE a dit : Question 3 a) remarque Expand Le premier terme est bien affiché, ce n'est pas le cas chez toi car tu as écris L=[] à la place de L=[u]. Citer
E-Bahut PAVE Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 Question 3b : "append" en anglais peut se traduire par "ajouter" (à la fin d'une liste 🧐) Le 22/02/2021 à 13:26, julesx a dit : Le premier terme est bien affiché, ce n'est pas le cas chez toi car tu as écris L=[] à la place de L=[u]. Expand Bien vu, Jules 🤨 ! Citer
E-Bahut PAVE Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 Question 3c : Est-on sûr que pour tout entier naturel u non nul, Liste_Syracuse(u) renvoie une liste ? Dans l'énoncé, il est dit : "La conjEcture de Syracuse (datant de 1928) [est] NON encore démontrée à ce jour..." Cela signifie que cette conjecture (hypothèse) qui prétend que "le nombre 1 est atteint par un terme de la suite" quel que soit l'entier naturel u non nul choisi pour u0, reste une hypothèse !! Ce n'est pas parce que cette hypothèse a, à ce jour, TOUJOURS été vérifiée par l'expérience (il n'existe donc pas de contre-exemple !!) qu'il en sera toujours ainsi... , Tant que cette propriété n'aura pas été DÉMONTRÉE, nul ne peut affirmer que dans l'infinité des nombres entiers naturels non nuls, il n'en existe pas UN pour lequel la propriété ne serait pas vérifiée. Jules, Clemme, si vous voulez laisser votre nom à la postérité essayez de DEMONTRER cette conjecture ou même plus simplement trouvez ce contre-exemple qui la mettrait en défaut 😁. Bon courage, moi j'ai renoncé. (un grand merci à Wikipedia où j'ai lu bien des choses sur cette conjecture de Syracuse ou de Collatz : c'est beau la "Kultur" 😇) Citer
E-Bahut julesx Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 En fait, c'est la formulation de la question qui me chiffonne. Est-on sûr que pour tout entier naturel u non nul, Liste_Syracuse(u) renvoie une liste ? Que renverrait le script si la conjecture n'était pas vérifiée, une fausse liste, un message d'erreur ou de dépassement de capacité ou ... Citer
Clemmellian Posté(e) le 22 février 2021 Auteur Signaler Posté(e) le 22 février 2021 Car moi je trouve 14: Citer
E-Bahut PAVE Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 Oui ! Relis en remontant le fil, le message de Jules en réponse à ma remarque Le 22/02/2021 à 13:26, julesx a dit : Le premier terme est bien affiché, ce n'est pas le cas chez toi car tu as écris L=[] à la place de L=[u]. Expand et à la fin de mon message sur "append" , ma réponse ("Bien vu Jules") qui clôt le débat. Citer
Clemmellian Posté(e) le 22 février 2021 Auteur Signaler Posté(e) le 22 février 2021 D'accord merci Donc pour la 3b, la liste append fait quoi, je n'ai pas vrmt commpris. Je pense qu'il faut imaginer que la conjecture est vraie Citer
E-Bahut julesx Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 Le 22/02/2021 à 19:39, Clemmellian a dit : Donc pour la 3b, la liste append fait quoi, je n'ai pas vrmt commpris. Je pense qu'il faut imaginer que la conjecture est vraie Expand La deuxième partie de ta question n'a rien à voir avec la question b). Essaie de sérier tes demandes. Citer
Clemmellian Posté(e) le 22 février 2021 Auteur Signaler Posté(e) le 22 février 2021 Dsl, donc pour la 3b ? Citer
E-Bahut PAVE Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 pour la 3b (le append) As tu essayé de comprendre et pourquoi pas de faire ce que je t'ai indiqué précédemment ? je crains que non☹️. Citation Question 3b : "append" en anglais peut se traduire par "ajouter" (à la fin d'une liste ) Expand Citer
E-Bahut PAVE Posté(e) le 22 février 2021 E-Bahut Signaler Posté(e) le 22 février 2021 J'ai un peu amélioré les bricolages... pour t'aider à comprendre ! Tu copies ce script (attention à ne pas le mélanger avec celui que tu à créé.... ). Tu l'exécutes et tu regardes ce que tu obtiens à chaque tour dans la boucle. from math import* def Syracuse(u): if u%2==0: u=u/2 else: u=3*u+1 return u def Liste_Syracuse(u): L=[u] tour=1 print("Au tour numéro ",tour," la liste est ",L) while u!=1: L.append(Syracuse(u)) u=Syracuse(u) tour=tour+1 print("Au tour numéro ",tour," la liste est ",L) return () Citer
Clemmellian Posté(e) le 23 février 2021 Auteur Signaler Posté(e) le 23 février 2021 La méthode append() ajoute les éléments dans une liste ? Citer
E-Bahut PAVE Posté(e) le 23 février 2021 E-Bahut Signaler Posté(e) le 23 février 2021 A toi de voir.... Qu'as tu obtenu avec mon dernier script de démonstration ? Citer
Clemmellian Posté(e) le 23 février 2021 Auteur Signaler Posté(e) le 23 février 2021 Lorsque je le lance rien Citer
E-Bahut julesx Posté(e) le 23 février 2021 E-Bahut Signaler Posté(e) le 23 février 2021 C'est normal, il n'y a que des fonctions, il faut les appeler pour qu'il se passe quelque chose : Rajoute à la fin, par exemple, Liste_Syracuse(10) Attention, pas d'indentation pour cette instruction, sinon elle se retrouve dans le def précédent. Dans la foulée, remplace le u=u/2 par u=u//2. Tu vois la différence ? Citer
E-Bahut PAVE Posté(e) le 23 février 2021 E-Bahut Signaler Posté(e) le 23 février 2021 J'ai encore un peu amélioré mon script de démonstration de la commande "append". from math import* def Syracuse(u): if u%2==0: u=u//2 else: u=3*u+1 return u def Liste_Syracuse(u): L=[u] tour=1 print("Au tour numéro ",tour,"\t la valeur de u est ",u," \t et la liste des valeurs de u est \t","\t",L) while u!=1: L.append(Syracuse(u)) u=Syracuse(u) tour=tour+1 print("Au tour numéro ",tour,"\t la valeur de u est ",u," \t et la liste des valeurs de u devient \t",L) return () Si en exécutant ce script, tu ne vois rien apparaitre 😠... relis les explications que nous t'avons données x fois !! Soit tu utilises la console, soit tu crées dans l'éditeur un petit programme (une ligne demandant l'affichage ; voir le dernier message de Jules). Concentre toi un peu et arrête d'attendre que l'on te dise sur quel bouton... appuyer ! Citer
Clemmellian Posté(e) le 23 février 2021 Auteur Signaler Posté(e) le 23 février 2021 J'obtiens ça : Citer
E-Bahut julesx Posté(e) le 23 février 2021 E-Bahut Signaler Posté(e) le 23 février 2021 C'est bien, tu as correctement recopié le script ! Donc, tu vois que chaque append rajoute un nouvel élément à la liste existante, c'est le but de cette méthode. Le 22/02/2021 à 13:59, PAVE a dit : Jules, Clemme, si vous voulez laisser votre nom à la postérité essayez de DEMONTRER cette conjecture ou même plus simplement trouvez ce contre-exemple qui la mettrait en défaut Expand Pour voir, j'ai essayé avec Liste_Syracuse(gogol), là encore ça aboutit, malgré la taille du nombre. En plus, ça va vite... Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.