Bonjour, et bienvenue sur le forum !
Oui, la limite s'explique très bien. Pour calculer FRAC(n/2), il faut dans un premier temps calculer n/2. Or, on est limité à 12 chiffres, donc tout ira bien jusqu'à ce que l'on ai à diviser un nombre entier n impair de justement 12 chiffres supérieur ou égal à 2.10^11 car il y aura forcément un soucis pour représenter exactement le résultat de la division.
C'est ce qu'on appelle une erreur d'arrondi (round-off error), c'est l'apparition de ce type de soucis qui me permet d'arrêter le programme sur la version pour HP-71B par l'instruction TRAP INeXact.
Comme le suggère gégé, sur l'HP Prime qui ne gère pas les erreurs d'exception mathématiques, le mieux est d'utiliser le mode CAS qui permet de travailler sans souci avec des entiers représentés exactement jusqu'à plus de 1500 chiffres.
Voilà qui me donne l'occasion d'essayer la nouvelle version Béta- du tout nouveau firmware de mon HP Prime G1:
Notez, l'utilisation d'un onglet CAS dans la nouvelle disposition de l'environnement de programmation : La capture suivante donne les résultats et le temps de calcul pour les valeurs entières exactes concernées. remarquons que le temps de vol pour 63728127 n'est pas de 950 mais de seulement de 949. L'HP-48GX de notre ami OlidaBel semble être convenablement exploitée et trouve cependant la bonne altitude maximale.HP prime Graphing Calculator
Software version 2.1.14541 (2021 04 13)
Hardware Version: C
Serial Number: 3CD62202N1
Operating system: V0.050.640
(c)2021 HP development Compagny, L.P.
Code : Tout sélectionner
#Cas // Drapeau activemode CAS
SYR(n):=
BEGIN
IP(n)►n►m;0►f;TICKS►t; // Initialisation: n entier m maximum t temps calculs
WHILE n>1 DO // Tant que n>1 :
1+f►f; // Incrémente Temps de Vol f
IF even(n) // Si n est pair
THEN n/2►n // alors divise n par deux
ELSE 3*n+1►n;MAX(m,n)►m // sinon triple n et ajoute 1, met à jour maximum m
END;
END;
RETURN {f,m,(TICKS-t)*.001_(s)}; // Renvoi { ToF , MxAlt , eTime(ms) }
END;
#end
P.S.: Les résultats obtenus avec le nouveau firmware de ma Prime pour 63728127 et 127456254 sont confirmés par mon HP-71B en respectivement 30.56" et 30.61".
Un HP-71B n'est donc que 13.7x plus lent qu'une HP Prime G1 !!