Espace pédagogique

suite de Syracuse

La programmation de la suite de Syracuse est l'occasion de faire la transition en Scratch et Python, notamment en faisant le parallèle entre un bloc et une fonction.

Objectif


Le but ici est à la fois d’introduire l’idée de la suite numérique mais aussi celle de la fonction en programmation sous Python. On pourra faire le parallèle entre la création d’un bloc sous Scratch et celle de la fonction syracuse(n) qui calcule le terme suivant en partant de la valeur n . Les étapes ne sont pas forcement à faire par l’ensemble du groupe classe. Chaque élève peut avancer à sa vitesse mais le fait de nommer les programmes de manière identique permettra au professeur de regrouper les productions de chacun pour les assembler lors de la correction finale.

Les bibliothèques utilisées


matplotlib.pyplot

Cette bibliothèque permet la création de graphiques pour visualiser les résultats obtenus. Elle est très pratique lors des séances sur vidéo-projecteur.

Ici seules deux commandes nous servent :


  • plot(x,y,"ro") place un point sur le graphique aux coordonnées ( x, y ) , ce sera rouge (r pour red) et un point (o).
  • show() affiche à l’écran le graphique, les axes étant fixés automatiquement pour voir l’ensemble des points définis.

L'activité


La suite de Syracuse est une suite célèbre qui reste encore mystérieuse pour les mathématiciens alors que sa construction est très simple.
Pour un nombre choisi, on le divise par 2 lorsqu’il est pair et on le multiplie par 3 et ajoute 1 lorsqu’il est impair.
Ainsi on obtient une suite de nombre, par exemple en partant de 14 : 14 ? 7 ? 22 ? 11 ? 34 ?...

Pour chacune des étapes suivantes :
  1. Écrire sur une feuille papier le programme en français réalisant la consigne donnée ;

  2. Construire un arbre avec les feuilles de papier qui symbolisera les liens entre les programmes ;

  3. Réaliser un programme en Python :
  • Étape 1 : syracuse(n) , calcule le terme venant après le nombre n ;
  • Étape 2 : syracuse10(n) , calcule les 10 premiers termes de la série en partant du nombre n ;
  • Étape 3 : volsyracuse(n) , calcule et affiche tous les termes de la suite partant du nombre n jusqu’à parvenir à la valeur ... (Voir après quelques essais du niveau 2) ;
  • Étape 4 : tempsvol(n) Afficher la hauteur d’un nombre n (c’est le nombre d’étapes pour arriver à ....)
  • Étape 5 : recherche(n) Trouver le nombre avec la plus grande hauteur entre 2 et 100.
  • Étape 6 : graphevol(n) Tracer sur un graphique le vol obtenu à partir du nombre n
  • Étape 7 : graphetemps(n) Tracer sur un graphique le temps de vol de chacun des entiers de 2 à 100

Information(s) pédagogique(s)

Niveau :
tous niveaux, Lycée tous niveaux, 2nde
Public visé :
non précisé

Document(s) complémentaire(s)

  • L'énoncé

    Fichier PDF
    L'énoncé et les algorithmes

    le fichier Python

    lien de docs