NOMBRES - Curiosités, théorie et usages

 

Accueil                           DicoNombre            Rubriques           Nouveautés      Édition du: 14/08/2017

Orientation générale        DicoMot Math          Atlas                   Références                     M'écrire

Barre de recherche          DicoCulture              Index alphabétique                               

     

Suite de nombres

 

Débutants

Général

Itérations – Cycles

 

Glossaire

Suites

et Séries

 

INDEX

Rubriques

 

 

Cycle de Syracuse

Procédé de Kaprekar

Cycle des Carrés

Syracuse – Débutant

 

Sommaire de cette page

>>> Utilisation du tableur

 

>>> Programme de calcul  (procédure)

 

>>> Programme avec diverses sorties

>>> Sortie des suites complètes

>>> Sortie  des caractéristiques

>>> Sortie  des records

 

Syracuse – développement

Syracuse - variantes

Syracuse – algèbre (2x3y)

Syracuse – Tables

Syracuse et nombre 27

Syracuse – Programmation

 

 

 

 

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

 

 

 TABLEUR (Excel) et Syracuse

 

*    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

 

 

 

 

Programmation – Procédure et liste

 

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 calcul est réalisé avec doublement du nombre si le nombre (m ) est pair sinon il est multiplié par 3 et incrémenté.

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

 

  

Programme de calcul de la suite

de Syracuse avec diverses sorties

 


> #Syracuse

> 

> #####Paramètre à fixer

>

> #Impression de la suite complète si Pchaine = 1, sinon mettre 0:

>     Pchaine:=1:

> # Impression que des records en temps de vol si TvolRec =1, sinon mettre 0:

>     TvolRec:=0:

> # Exploration jusqu'à nmax:

>     nmax:=50:

> # Longueur max de la séquence 200 par défaut, mettre davantage si ça bloque:

>     altitudemax:=200:

>

>     syr:=array(1..altitudemax):

>     tempvolmax:=0:

>    

> #####Début du programme

>

> #Exploration des nombres n:

> for n from 1 to nmax do

>

> #recherche de la suite des nombres associés à n:

>     for i from 1 to altitudemax do syr[i]:=0:od:

>    

>     T:=n: i:=1:

>     while T<>1 do

>       if frac(T/2)=0 then T:=T/2 else T:=3*T+1 fi:

>       syr[i]:=T: i:=i+1:

>       od:

> #temps de vol

>     tvol:=1:  

>     while syr[tvol]<>0 do

>       tvol:=tvol+1

>     od:

>     tvol:=tvol-1:    

>        S:=array(1..tvol+1):

>        for i from 1 to tvol  do S[tvol+1-i]:=syr[i] od:

>        S[tvol+1]:=n:

> #hauteur de vol:

>     haut:=0:mont:=0:

>     for i from 1 to tvol  do

>        if S[i]>haut then haut:=S[i]:mont:=i:fi:

>     od:

>

> #sortie des caractéristiques du nombre n

>    if TvolRec =1 then    

>        if tvol>tempvolmax then tempvolmax:=tvol:

>            print( record,n,tvol,haut,mont)

>        fi:

>    else   

>        if Pchaine=1 then print(n,tvol,haut,mont,S)

>        else print(n,tvol,tempvolmax,haut,mont)

>        fi:

>    fi:

> od:

> lprint(fin,n):

Voir Introduction à la programmation

 

 

Sortie des suites complètes

 

*    On conserve les paramètres du programme ci-dessus

 

Voir Suite de Syracuse pour n de 1 à 50
 

 

 

 

Sortie  des caractéristiques

 

*    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

 

 

 

SORTIE  DES RECORDS

 

*    On positionne le paramètre TvolRec:= 1

*    On obtient la liste suivante avec les records en deuxième colonne:


2, 1, 1, 1

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

 

 

 

Retour

*         Cycle de Syracuse

Voir

*         Syracuse – Nombre 27

Sites

*           Voir Liste en page d'introduction

Cette page

http://villemin.gerard.free.fr/Wwwgvmm/Iteration/Syracus2.htm