La suite de Syracuse programmée sur HP-15C

Jean-Pierre Bucciol

22 fév 2024

medias/2024/02/20240222-0-web-e

Ce programme pour calculette HP-15C calcule les termes de la suite de Syracuse pour un terme initial donné :

   000 {             }
   001 {    42 21 11 } f LBL A
   002 {       44  0 } STO 0
   003 {       44  1 } STO 1
   004 {       44  2 } STO 2
   005 {           0 } 0
   006 {       44 25 } STO I
   007 {           1 } 1
   008 {       45  1 } RCL 1
   009 {    43 30  8 } g TEST x<y
   010 {       22  5 } GTO 5
   011 {       42 44 } f FRAC
   012 {    43 30  0 } g TEST x≠0
   013 {       22  5 } GTO 5
   014 {    42 21  2 } f LBL 2
   015 {           1 } 1
   016 {       45  1 } RCL 1
   017 {    43 30  5 } g TEST x=y
   018 {       22  4 } GTO 4
   019 {       32  0 } GSB 0
   020 {       44  1 } STO 1
   021 {           1 } 1
   022 {    44 40 25 } STO + I
   023 {       45  2 } RCL 2
   024 {       45  1 } RCL 1
   025 {       43 10 } g x≤y
   026 {       22  3 } GTO 3
   027 {       44  2 } STO 2
   028 {    42 21  3 } f LBL 3
   029 {       42 31 } f PSE
   030 {       22  2 } GTO 2
   031 {    42 21  4 } f LBL 4
   032 {       45  0 } RCL 0
   033 {       45  2 } RCL 2
   034 {       45 25 } RCL I
   035 {       45  1 } RCL 1
   036 {       43 32 } g RTN
   037 {    42 21  5 } f LBL 5
   038 {       45  1 } RCL 1
   039 {    43  4  9 } g SF 9
   040 {       43 32 } g RTN
   041 {    42 21  0 } f LBL 0
   042 {          36 } ENTER
   043 {          36 } ENTER
   044 {           2 } 2
   045 {          10 } ÷
   046 {       42 44 } f FRAC
   047 {       43 20 } g x=0
   048 {       22  1 } GTO 1
   049 {          34 } x↔y
   050 {           3 } 3
   051 {          20 } ×
   052 {           1 } 1
   053 {          40 } +
   054 {       43 32 } g RTN
   055 {    42 21  1 } f LBL 1
   056 {          34 } x↔y
   057 {           2 } 2
   058 {          10 } ÷
   059 {       43 32 } g RTN

Utilisation

Le programme se lance avec les touches f LBL A. Il prend le terme initial de la suite (qui doit être un entier plus grand ou égal à 1) dans le premier registre de la pile opérationnelle, et affiche successivement tous les termes de la suite. Une fois arrivé à 1 (oui, je suppose que la conjecture est vraie...), le programme s'arrête. Il laisse dans la pile opérationnelle le 1 final, le nombre de termes calculés (la durée de vol, dans le folklore mathématique), le maximum atteint (l'altitude maximale de vol), et le terme initial.

Exemple

On met 27 dans la pile et on lance le programme avec f LBL A. Les termes de la suite sont affichés successivement. Au bout de 2 min et 5 s (sur une HP 15c Collector's Edition), le programme s'arrête et on obtient les valeurs suivantes :

T: 27,0000
Z: 9232,0000
Y: 111,0000
X: 1,0000

Interprétation :

Quelques explications sur le programme

Le programme compte 59 lignes, utilise 4 registres et 5 étiquettes en plus de l'étiquette de lancement. On peut sans aucun doute faire plus compact.

Les lignes 41 à 59 contiennent la relation de récurrence de la suite Syracuse. Connaissant un terme de la suite, elle permet de calculer le suivant. C'est un sous-programme stockée sous étiquette f LBL 0 que l'on peut utiliser indépendamment. Par exemple, à partir du terme égal à 63 placé dans la pile opérationnelle, on peut calculer le terme suivant avec 63 GSB 0: on obtient 190.

Revenons au programme principal. Les lignes 1 à 6 initialisent les registres utilisés :

Les lignes 7 à 13 testent si le terme initial est bien un entier plus grand ou égal à 1. Le cas échéant, le pointeur du programme est envoyé au LBL 5 (ligne 37) pour un arrêt propre. Si le terme initial est adéquat, on peut commencer à calculer les termes de la suite.

Les lignes 14 à 30 constituent la boucle principale :

Les lignes 31 à 36 gèrent l'arrêt du programme et affiche les valeurs voulues.

Enfin, les lignes 37 à 40 gèrent l'arrêt brusque du programme en cas de valeur initiale non adéquate : l'affichage clignote alors pour signaler le problème.

Quelques ressources disponibles sur le web concernant la HP-15C :

← Article précédent
1000 km avec le Winspace G2, déc 2023
Article suivant →
Les fonctions sur HP-15C, fév 2024

Je préfère vraiment les contacts à l'ancienne, par courrier électronique à l’adresse jpsmail(at)free.fr. Antispam : penseras-tu à remplacer (at) par @ dans l’adresse ? Que cela ne t'enpêche pas d'ajouter un commentaire :

Nom :

Commentaire :

Articles (304)

   (*: nécessite un mot de passe.)
↑ Retour en haut de la page