Over_score a écrit : ↑19 juin 2021 11:35
Salut tout le monde,
je lis presque partout, et vois sur youtube que le HP est plus rapide que la TI (oui je dis
le HP et
la TI).
Salut,
Tiens c'est marrant, je fais exactement l'inverse, je parle d'
une HP Prime (c'est une calculatrice car on vois très clairement les touches [ SIN ][ COS ][ TAN] au milieu du clavier. Alors que je dis
un TI NSpire CX-T car, comme un HP-28S, son clavier ne comporte pas l'alignement traditionnel des trois touches trigo
Et ça me paraît logique vu les processeurs et fréquences d'horloges utilisés par l'un et l'autre.
Mais, moi j'ai un programme qui montre l'inverse… Je l'utilise un peu partout sur mes pockets pour tester empiriquement leur vitesse avec un exemple pas très compliqué.
[...]
Pour calculer diviseur(3601800221):
* le * TI donne {60013,60017} en 7,9"
* la * HP donne {60013,60017} en 17,9"
Ca c'est possible, plus une machine a de fonctions et de possibilités, plus les programmes utilisateurs sont parfois long à s'exécuter. Le Ti NSpire a peut-être un moyen d'éviter ce travers. En tout cas, la Hp prime évite ce travers, avec ton code (correctement saisi) je trouve ce dernier résultat en environ 3 secondes:
- Diviseurs HP Prime avec le code correct.png (6.73 Kio) Vu 3789 fois
Cela prouve donc que ton programme est bien adapté
au TI NSpire et est incorrect pour une HP Prime.
Pour
la HP Prime, on obtiens les dits facteurs instantanément si on l'utilise convenablement, c'est à dire dans le CAS et avec la fonction native :
- Diviseurs HP Prime native CAS function ifactor.png (11.34 Kio) Vu 3789 fois
Evidemment, utiliser la fonction native de la Prime ne permet pas de comparer quoique ce soit avec le système NSpire.
Ce qui m'inquiète est que mon antique TI-92 II trouve les diviseurs de 3601800221 en seulement 26"53
Si on utilise la fonction native du NSpire, c'est j'espère immédiat comme pour la Prime ?
Par ailleurs, diviseur(36018002217733) donne {4065179,8860127} en 8'51" sur la TI et {2, 1.80090011088E13} (FAUX !) en 0,1" sur le HP !
Y a-t-il quelque chose à configurer pour accélérer le HP ? Désactiver CAS, donner des types aux variables ou que sais-je ?
Ben justement tel que mal écrit dans le post précèdent, le code n'utilise pas du tout le CAS de la prime qui donc se limite strictement à 12 chiffres significatifs et donc l'algorithme plante dès le test du facteur 2 par la fonction modulo.
Pour obtenir le résultat attendu sur l'HP Prime, il suffit de déclarer le même code (correctement saisi attention au copier-coller qui emmènent des caractères cachés et aux variations de syntaxe entre fonction numérique et fonction CAS) comme étant une fonction CAS et celle-ci utilisera l'arithmétique entière de précision infinie ce qui évitera le résultat faux. Mais je ne sais pas si cela va accélérer les choses.
Je me doute que non.
EDIT:
VERSION RAPIDE POUR MODE HOME (mais limité à des entiers de 12 chiffres)
Code : Tout sélectionner
EXPORT DIVISEURS(c)
BEGIN
LOCAL p:={1,1,2,2,4,2,4,2,4,6,2,6,4,2,4,6,6,2,6,4,2,6,4,6,8,4,2,4,2,4,8,6,4,6,2,4,6,2,6,6,4,2,4,6,2,6,4,2,4,2,10,2,10};
LOCAL l:=FLOOR(SQRT(ABS(c))),d:=1,i:=1;
WHILE d<l DO
d:=d+p(i);
IF c MOD d=0 THEN RETURN {d, c/d}; END;
i:=i+1; IF i>53 THEN i:=6 END;
END;
RETURN {c,1};
END;
VERSION CAS pour entiers jusqu'à 10^24 (mais plus lent):
Code : Tout sélectionner
div(c):=
BEGIN
LOCAL p:={1,1,2,2,4,2,4,2,4,6,2,6,4,2,4,6,6,2,6,4,2,6,4,6,8,4,2,4,2,4,8,6,4,6,2,4,6,2,6,6,4,2,4,6,2,6,4,2,4,2,10,2,10};
LOCAL l:=FLOOR(√(ABS(approx(c))));
LOCAL d:=approx(1),i:=approx(1);
WHILE d<l DO
d:=d+p[i];
IF c MOD d=0.0 THEN RETURN {d, c/d}; END;
i:=i+1.0; IF i>53.0 THEN i:=6.0 END;
END;
RETURN {c,1};
END;
Désolé pour cette édition du message initial qui a pris une heure. J'utilise ne ce moment une version béta et à l'occasion des captures et programmations pour répondre ici, j'ai découvert un bug concernant la distinction entre fichiers CAS (ppl) et CAS(Python). Ce qui m'a fait perdre du temps.
HP Prime Graphing Calculator
Software Version: 2.1.14588 (2021 05 05)
Hardware Version: C (c'est bien une G1)
CAS Version: 1.5.0
Serial Number: 3CD66202N1
Operating System: V0.050.640
(c) 2021 HP Development Compagny, L.P.