Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

L'algorithme de Syracuse

Posté par
Annah
10-05-13 à 13:01

Bonjour à tous,
j'ai un DM à rendre pour le semaine prochaine. Il s'agit d'un exercice d'algorithmique à effectué sur Algobox et il me pose quelques problèmes et je n'arrive pas à le résoudre après pas mal de réflexion...
Voici ce qui nous ai donné :  

Entrée
Saisir n: entier naturel non nul
Traitement
Tant que n différent 1
   Si n pair alors
        n prend la valeur n/2
        sinon
        nprend la valeur 3n+1
   FinSi
   Sortie
   Afficher n
FinTanque

Voici l'énoncé :

Les nombres calculés à partir de n avec cet algorithme, forment la suite de Syracuse de n.
1.a) Vérifier que pour n=6, cet algorithme donne la suite : 6;3;10;5;16;8;4;2;1.
b)Quelle suite obtient-on à partir de n=34 ? n=75 ?

2.a) Dans une feuille de calcul implémenter cet algorithme de la façon suivante.
*entrer en A1 la valeur initiale de n.
*Saisir en A2 une formule permettant de calculer le second nombre de la suite.
*Recopier en B2 le premier nombre de la suite.
*Recopier vers le bas les formules saisies jusqu'à la ligne 21.

plageAB
16
236
3103
4510
5165
6816
748
824


b) Tracer le nuage de point correspondant à la plage A1:B21.
c) Tester le programme avec n, puis vérifier qu'avec n=19, il faut 21 étapes de calcul.
d) Que peut-on remarquer quant au nuage de points ?


Posté par
Annah
re : L'algorithme de Syracuse 10-05-13 à 13:10

J'aimerais bien que quelqu'un m'éclaire sur ce problème car je n'y comprends vraiment rien...

Posté par
Glapion Moderateur
re : L'algorithme de Syracuse 10-05-13 à 15:17

Il suffit juste de trouver la formule dans Excel qui traduit Si n pair alors n prend la valeur n/2 sinon n prend la valeur 3n+1

Si tu avais recherché ne serait-ce que 5 mn dans les fonctions Excel tu aurais trouvé :

=SI(EST.PAIR( B2);B2/2;3*B2+1)

Posté par
Glapion Moderateur
re : L'algorithme de Syracuse 10-05-13 à 15:20

Nuage de points pour n=19 par exemple :
L\'algorithme de Syracuse

Posté par
Annah
re : L'algorithme de Syracuse 10-05-13 à 16:12

Merci beaucoup, mais je ne pensais pas que le tableau m'aiderait vraiment à construire cet algobox : selon moi, je pensais que ce n'était q'une aide pour pouvoir résoudre cet algobox plus facilement...du coup, le tableau doit-il etre nécessaire pour la construction de mon algobox ?  

Posté par
Glapion Moderateur
re : L'algorithme de Syracuse 10-05-13 à 16:18

Ben non, ça n'aide pas à faire le programme algobox. C'est juste une autre façon d'étudier la suite en question. Et ça donne une visualisation des valeurs.

Pour Algobox, c'est plutôt facile à transcrire. Je dois avoir ça dans mes cartons :

(tu peux le copier/coller directement mais il faut être en mode éditeur de texte. Tu peux aussi le coller sur le site en ligne )


VARIABLES
  U EST_DU_TYPE NOMBRE
  N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  LIRE U
  N PREND_LA_VALEUR 1
  AFFICHER N
  AFFICHER " --> "
  AFFICHER* U
  TANT_QUE (U != 1) FAIRE
    DEBUT_TANT_QUE
    SI (round(U/2)==U/2) ALORS
      DEBUT_SI
      U PREND_LA_VALEUR U/2
      FIN_SI
      SINON
        DEBUT_SINON
        U PREND_LA_VALEUR 3*U+1
        FIN_SINON
    N PREND_LA_VALEUR N+1
    AFFICHER N
    AFFICHER " --> "
    AFFICHER* U
    FIN_TANT_QUE
FIN_ALGORITHME

Posté par
Pierre_D
re : L'algorithme de Syracuse 10-05-13 à 16:44

Bonjour Glapion et Annah,

En ce qui concerne la partie Excel de la chose, je pense qu'il faut comprendre les lignes et colonnes montrées comme incluant les ligne et colonne des coordonnées (le nombre 6 est dans la cellule A1).

Alors la bonne instruction (dans A2) devient :  =SI(EST.PAIR( A1);A1/2;3*A1+1)

Et la figure demandée ressemblerait plutôt à ça :  
L\'algorithme de Syracuse

Posté par
Glapion Moderateur
re : L'algorithme de Syracuse 10-05-13 à 17:40

non je ne suis pas d'accord Pierre_D, si tu fais comme ça tu calcules f(n) et pas une formule de récurrence. D'ailleurs ça ne donne pas les bons résultats de la suite de syracuse.

Posté par
Pierre_D
re : L'algorithme de Syracuse 10-05-13 à 17:51

Je ne comprends pas ta remarque ; j'ai suivi strictement les instructions de l'énoncé, et ça marche parfaitement.

Citation :
2.a) Dans une feuille de calcul implémenter cet algorithme de la façon suivante.
*entrer en A1 la valeur initiale de n.
*Saisir en A2 une formule permettant de calculer le second nombre de la suite.
*Recopier en B2 le premier nombre de la suite.
*Recopier vers le bas les formules saisies jusqu'à la ligne 21.

Posté par
Glapion Moderateur
re : L'algorithme de Syracuse 10-05-13 à 18:03

"Saisir en A2 une formule permettant de calculer le second nombre de la suite."

Il faut forcement reproduire la formule de récurrence qui est Un+1=Un/2 si Un est pair et Un+1=3Un+1 si Un est impair.
la formule Excel n'a donc pas besoin de la colonne A mais seulement de la valeur du terme précédent (donc de B1)
=SI(EST.PAIR( B2);B2/2;3*B2+1) (car pour moi la colonne qui a un A en haut est la seconde donc s'appelle B dans Excel)

la première colonne ne sert pas à calculer, elle ne sert qu'à représenter le nuage de points.

De toute façon, il faut obtenir les valeurs du tableau de l'énoncé, et avec ta formule ça ne marche pas.
La suite de Syracuse est bien connue , il faut retrouver les valeurs.

Posté par
Pierre_D
re : L'algorithme de Syracuse 10-05-13 à 18:06

Ca irait peut-être mieux si tu lisais ce que j'ai dit :

Citation :
En ce qui concerne la partie Excel de la chose, je pense qu'il faut comprendre les lignes et colonnes montrées comme incluant les ligne et colonne des coordonnées (le nombre 6 est dans la cellule A1).
Alors la bonne instruction (dans A2) devient :  =SI(EST.PAIR( A1);A1/2;3*A1+1)

Posté par
Glapion Moderateur
re : L'algorithme de Syracuse 10-05-13 à 18:21

ha OK, on dit la même chose en ce qui concerne le calcul des termes de la suite si je comprends bien alors mais on a simplement pas appelé les colonnes pareil (pour moi la seconde colonne est la B)
En fait tu comprends que la colonne marquée plage du tableau n'est pas une colonne Excel mais est juste là pour compter les valeurs ? Bon pourquoi pas.
Mais dans ce cas le dessin du nuage donne plutôt ça :
L\'algorithme de Syracuse
Et il n'a pas grand intérêt alors que celui que j'avais dessiné montre bien l'évolution des valeurs et la notion de vol.

Posté par
Pierre_D
re : L'algorithme de Syracuse 10-05-13 à 18:34

D'accord.
Mais le graphique est plutôt celui que j'ai présenté (en fait c'est la plage A2:B21 plutôt que A1:B21 vu l'inexistence de B1) : il relie "nombre suivant" (colonne A) à "nombre précédent" (colonne B sur la même ligne) et montre bien les deux relations de précédent à suivant selon que précédent est pair ou impair ; c'est cela que l'énoncé voulait faire voir à l'élève. On peut simplement remarquer que ce serait encore plus clair et pédagogique si précédent était en abscisse et suivant en ordonnée.

Posté par
Glapion Moderateur
re : L'algorithme de Syracuse 10-05-13 à 18:39

Ha oui d'accord. Je n'avais pas compris que ton dessin correspondait à ça.

Posté par
Annah
re : L'algorithme de Syracuse 10-05-13 à 19:37

Merci beaucoup pour votre aide précieuse ! Cela m'a permis de m'élancer plus facilement pour la construction de cet algobox et de ne plus bloquer sur certains points ! Mille fois merci !



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !