|
Syracuse et Calculs On explore l'utilisation
d'un tableur puis celle d'un logiciel mathématique pour développement le
cycle de Collatz ou de Syracuse. |
Voir Programmation
Syracuse – Débutant (Tableur et
programmation)
Extension
fractale du cycle de Collatz
Voir Fractales
Source
image: Collatz and self-similariry – Inigio Quilez – Vidéo
|
|
Placer les nombres en colonne A, par exemple de 1 à 15
(ici en rouge).
Tapez 1 en A1, puis B en A2,
Sélectionnez les deux cellules A1 et A2 avec la souris,
Tirez la poignée en bas à droite avec la souris jusqu'à
obtenir le nombre 15 dans la fenêtre mobile.
Tapez la formule indiquée en B1: SI (MOD …); elle
s'affiche dans la fenêtre fx, en
haut de la feuille de calcul. Explications:
MOD(A1;2) donne le reste de la division par 2,
Si le reste est égal à 1 (vrai en logique) alors on
multiplie par 3 et on ajoute 1; sinon on divise par 2.
Composez le tableau:
Sélectionnez la case B1,
Tirez la poignée en bas à droite vers le bas,
Sélectionnez toutes ces nouvelles cases en colonne B
Tirez sur la poignée en bas à droite vars la droite
pour former les colonnes C à T.
Observation du résultat
Coloriez en rose les fin de ligne commençant après
avoir rencontré un 1. |
Copie d'écran du résultat
|
||
|
Commentaires Ce programme comprend une procédure qui pour un nombre n renvoie la
liste des nombres successifs du cycle de Syracuse. Procédure La boucle est engagée tant que le nombre du cycle n'est pas égal à 1. Le nouveau nombre est adjoint à la liste L, laquelle en fin de
procédure est émise vers la sortie (return) Programme Investigation pour les nombres de 15 à 20 en imprimant pour chacun: sa
valeur, la quantité de termes dans la liste et la liste des termes du cycle
de Syracuse. Résultats 15, 18, [15, 46, 23, 70, 35, 106,
53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1] 16, 5, [16, 8, 4, 2, 1] 17, 13, [17, 52, 26, 13, 40, 20,
10, 5, 16, 8, 4, 2, 1] 18, 21, [18, 9, 28, 14, 7, 22, 11,
34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1] 19, 21, [19, 58, 29, 88, 44, 22, 11,
34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1] 20, 8, [20, 10, 5, 16, 8, 4, 2, 1] |
|
Voir Introduction
à la programmation / Syracuse – Record de temps
de vol
Voir Introduction
à la programmation
|
|
On conserve les paramètres du programme ci-dessus |
|
||
On positionne le paramètre: Pchaine:= 0
On obtient la liste suivante:
|
||
On trouve dans l'ordre: n,
tvol, haut, mont: avec: n: le nombre
considéré tvol: la longueur de la
suite ou temps de vol haut: valeur maximale de
la suite, ou hauteur de vol mont: longueur de la suite pour atteindre la
valeur maximale de la suite |
1,
0, 0, 0 2,
1, 1, 1 3,
7, 16, 5 4,
2, 2, 2 5,
5, 16, 5 6,
8, 16, 5 7,
16, 52, 12 8,
3, 4, 3 9,
19, 52, 12 10,
6, 16, 5 11,
14, 52, 12 12,
9, 16, 5 13,
9, 40, 9 14,
17, 52, 12 15,
17, 160, 11 16,
4, 8, 4 17,
12, 52, 12 18,
20, 52, 12 19,
20, 88, 18 20,
7, 16, 5 |
|
|
|
On positionne le paramètre TvolRec:= 1
On obtient la liste suivante avec les records en
deuxième colonne: Voir Programme complet
ci-dessous 3,
7, 16, 5 6,
8, 16, 5 7,
16, 52, 12 9,
19, 52, 12 18,
20, 52, 12 25,
23, 88, 18 27, 111, 9232, 35 Remarquable car le saut est
important de 23 à 111. 54,
112, 9232, 35 73,
115, 9232, 35 97, 118, 9232, 35 129,
121, 9232, 35 171,
124, 9232, 35 231,
127, 9232, 35 313,
130, 9232, 35 327,
143, 9232, 35 649,
144, 9232, 35 703,
170, 250504, 89 871,
178, 190996, 148 |
Voir Syracuse
– Record de temps de vol
Programme
Syracuse temps de vol record Quantité d'étapes
(soit: quantité de nombres dans la liste moins 1) |
|
|
|
But Avec Maple,
éditer la liste des records de temps de vol de la suite de Syracuse. But Procédure de calcul de l'image de n selon
l'algorithme Syracuse. Programme principal: initialisation du record à 0
et de la liste des records, vide. boucle selon besoin (ici 1000). Ouverture d'une liste avec le nombre de départ en
premier élément. Itération Syracuse tant que l'image n'atteint pas
le 1, en limitant la recherche à 1000 itérations (précaution). La liste L enregistre les images. On note q la
quantité d'éléments dans L. Si cette quantité est supérieure au précédent
record, le nouveau record est validé et enregistré. La liste R est éditée en fin de programme. |
|
Exemple avec le nombre 107 dont le temps
de vol est 100 Son temps de vol calculé est 8 (en rouge), alors que le
temps de vol de 274 est déjà connu (92). 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155,
466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336,
668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319,
958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822,
911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732,
866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35,
106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1. |
Amélioration du programme L'idée consiste à mémoriser les temps de vol déjà
calculés. Alors, durant le calcul pour un nouveau nombre,
dès que l'on détecte un nombre déjà connu, on ajoute son temps de vol connu à
celui en cours de calcul. Les tables suivantes ont été calculées avec ce
type de programme (notamment pour trouver le temps e vol égal à 1000). |
|
Voir Programmation – Index
Retour |
|
Voir |
|
Sites |
|
Cette page |
http://villemin.gerard.free.fr/Wwwgvmm/Iteration/Syracus2.htm |