Aller au contenu

Messages recommandés

  • Réponses 107
  • Created
  • Dernière réponse
  • E-Bahut
Posté(e)

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

  • E-Bahut
Posté(e)

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 ?

  • E-Bahut
Posté(e)

Question 3b : "append" en anglais peut se traduire par "ajouter" (à la fin d'une liste 🧐)

image.png.211ac19e88c9d8c15db8b36d4d54e2ec.png

  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 🤨 !

 

  • E-Bahut
Posté(e)

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" 😇)

  • E-Bahut
Posté(e)

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 ...

  • E-Bahut
Posté(e)

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.

  • E-Bahut
Posté(e)
  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.

  • E-Bahut
Posté(e)

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 🧐)

image.png.211ac19e88c9d8c15db8b36d4d54e2ec.png

Expand  

 

  • E-Bahut
Posté(e)

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 ()

 

  • E-Bahut
Posté(e)

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 ?

 

  • E-Bahut
Posté(e)

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 !

  • E-Bahut
Posté(e)

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...

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...
spam filtering
spam filtering