Excellent, le résultat est instantané, sinon presque, le 35s et le 17bII+ restent loin derrière.bernouilli92 a écrit :Voici ma proposition en RPL :Il faut remplacer SQRT par le symbole racine carrée.Code : Tout sélectionner
<< 2 0 1 9 START 2 + SQRT 2 OVER / ROT * SWAP NEXT DROP >>
Total : 50 octets
On doit pouvoir battre des records de taille avec la wp34s.
Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
Modérateur : Politburo
- agent_macgeek
- Fonctionne à 300 bauds
- Messages : 117
- Enregistré le : 22 févr. 2014 17:18
- Localisation : Bienne - Suisse
- Contact :
Re: Calculons Pi comme Viète
Nostalgique du bon vieux temps depuis 1977.
1 MacBook Pro de 2015 sous High Sierra
1 TI Nspire CX CAS
1 HP 50g
1 HP 35s
1 HP 17BII+
1 iPhone 7 sous iOS 11
1 MacBook Pro de 2015 sous High Sierra
1 TI Nspire CX CAS
1 HP 50g
1 HP 35s
1 HP 17BII+
1 iPhone 7 sous iOS 11
- Paul Tergeist
- Fonctionne à 9600 bauds
- Messages : 2417
- Enregistré le : 15 oct. 2007 15:50
- Localisation : 3ème planète après le soleil
Re: Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
Je découvre ce sujet et je suis agréablement surpris.
Bravo Gilles pour cette méthode de calcul de Pi que je ne connaissais pas.
François Viète je le connais surtout par sa cuisine (excellente d'ailleurs).
Je suis épaté par le nombre, la diversité et les connaissances des participants.
Et le petit grain de folie pour parfaire le tout.
Ca redonne confiance en l'humanité.
Bravo Gilles pour cette méthode de calcul de Pi que je ne connaissais pas.
François Viète je le connais surtout par sa cuisine (excellente d'ailleurs).
Je suis épaté par le nombre, la diversité et les connaissances des participants.
Et le petit grain de folie pour parfaire le tout.
Ca redonne confiance en l'humanité.
-
- Fonctionne à 300 bauds
- Messages : 109
- Enregistré le : 04 avr. 2021 16:09
- Localisation : 50.693165,4.573478
Re: Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
Salut. Un peu tardivement j’ai fait connaissance avec ce MPO.
Je n’ai pas pu le coder de façon très efficace ..., ni court ni rapide. Sur 48GX et 50G.
Une version avec variables locales et une autre sans variable donc pas mal de mouvements et copie dans la pile (étonnamment peu performante, va falloir y aller mollo avec les PICK et les ROLLD)...
Dur dur pour la partie technique, mais plaisir de traîner ici, chouette forum.
Y a des gens très compétents ici, impressionnant
Je n’ai pas pu le coder de façon très efficace ..., ni court ni rapide. Sur 48GX et 50G.
Une version avec variables locales et une autre sans variable donc pas mal de mouvements et copie dans la pile (étonnamment peu performante, va falloir y aller mollo avec les PICK et les ROLLD)...
Dur dur pour la partie technique, mais plaisir de traîner ici, chouette forum.
Y a des gens très compétents ici, impressionnant
- dprtl
- Fonctionne à 1200 bauds
- Messages : 463
- Enregistré le : 27 janv. 2013 00:26
- Localisation : Strasbourg
- Contact :
Re: Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
Pour compléter la longue liste des machines qui ont participé à ce MPO, j'ai ressorti ma Casio FX-CP400. À tort ou à raison, j'ai l'impression que cette calculette est un peu mal aimée. Peut-être qu'elle souffre de la comparaison avec la HP Prime, de conception un peu plus récente ? Pourtant, à l'usage, elle ne manque pas d'arguments avec son grand écran couleur et ses claviers virtuels très accessibles (au stylet).
J'ai tenté une première résolution de ce MPO sans programmation, avec l'application intégrée nommée "Suites". Ça fonctionne bien, même si la précision maximale de la Casio n'est pas exceptionnelle dans ce mode (atteinte à l'itération 17 environ) :
J'espère que les liens vers mes images résisteront aux années. Car, malheureusement, beaucoup d'images anciennes ont été perdues dans l'historique du forum.
J'ai ensuite tenté une programmation naïve avec le Basic spécifique de cette machine :
Ici, le programme met 46s à dérouler ses 26 itérations. Ce qui confirme ce que tout le monde sait déjà : la FX-CP400 n'est pas un foudre de guerre. Sur la taille du programme, il pèse très exactement 236 octets en mode "PRGM", ou 140 octets en "TEXT". C'est alors que j'ai découvert un menu "Compression" avec lequel je m'attendais à pouvoir battre la FX-180P de Xerxes Mais non : le programme compressé pèse encore 132 octets Dans ce mode "EXE" (je l'aurais plutôt nommé "INU" comme inutile), l'édition du programme devient impossible, alors que le temps d'exécution ne diminue pas.
J'ai tenté une première résolution de ce MPO sans programmation, avec l'application intégrée nommée "Suites". Ça fonctionne bien, même si la précision maximale de la Casio n'est pas exceptionnelle dans ce mode (atteinte à l'itération 17 environ) :
J'espère que les liens vers mes images résisteront aux années. Car, malheureusement, beaucoup d'images anciennes ont été perdues dans l'historique du forum.
J'ai ensuite tenté une programmation naïve avec le Basic spécifique de cette machine :
Ici, le programme met 46s à dérouler ses 26 itérations. Ce qui confirme ce que tout le monde sait déjà : la FX-CP400 n'est pas un foudre de guerre. Sur la taille du programme, il pèse très exactement 236 octets en mode "PRGM", ou 140 octets en "TEXT". C'est alors que j'ai découvert un menu "Compression" avec lequel je m'attendais à pouvoir battre la FX-180P de Xerxes Mais non : le programme compressé pèse encore 132 octets Dans ce mode "EXE" (je l'aurais plutôt nommé "INU" comme inutile), l'édition du programme devient impossible, alors que le temps d'exécution ne diminue pas.
- gege
- Fonctionne à 14400 bauds
- Messages : 7147
- Enregistré le : 31 janv. 2008 14:24
- Localisation : Banlieue Paârisienne
- Contact :
Re: Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
Bonjour,
Bonne idée de ressortir une ClassPad, et comme tu l'as remarqué cette machine innovante et sympathique souffre de quelques tares :
- puissance : faible
- n'accepte pas de sauvegarder un programme qui ne soit pas syntaxiquement correct (j'appelle ceci le "problème de l'envie de pisser")
- clavier virtuel disposé probablement par un adepte du masochisme
- clavier réel quasiment sans intérêt (deux touches "moins" mais pas de touche "2nde" ???)
Dommage, avec le même nombre de touches physiques, un processeur raisonnable et un clavier virtuel bien rangé cette gamme pourrait rivaliser avec la HP Prime (je ne mentionne même pas cette pauvre cochonnerie de TI Nspire (il paraît qu'ils en ont vendu une cette année) - ah zut).
A+
G.E.
Bonne idée de ressortir une ClassPad, et comme tu l'as remarqué cette machine innovante et sympathique souffre de quelques tares :
- puissance : faible
- n'accepte pas de sauvegarder un programme qui ne soit pas syntaxiquement correct (j'appelle ceci le "problème de l'envie de pisser")
- clavier virtuel disposé probablement par un adepte du masochisme
- clavier réel quasiment sans intérêt (deux touches "moins" mais pas de touche "2nde" ???)
Dommage, avec le même nombre de touches physiques, un processeur raisonnable et un clavier virtuel bien rangé cette gamme pourrait rivaliser avec la HP Prime (je ne mentionne même pas cette pauvre cochonnerie de TI Nspire (il paraît qu'ils en ont vendu une cette année) - ah zut).
A+
G.E.
- Xerxes
- Fonctionne à 300 bauds
- Messages : 292
- Enregistré le : 02 avr. 2007 13:41
- Localisation : Allemagne
- Contact :
Re: Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
Salut Daniel, have you also checked the execution time using setdecimal instead of approx?
- dprtl
- Fonctionne à 1200 bauds
- Messages : 463
- Enregistré le : 27 janv. 2013 00:26
- Localisation : Strasbourg
- Contact :
Re: Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
- Xerxes
- Fonctionne à 300 bauds
- Messages : 292
- Enregistré le : 02 avr. 2007 13:41
- Localisation : Allemagne
- Contact :
Re: Misez p'tit, optimisez n°60 : Calculons Pi comme Viète
I'am afraid that the test code of the n-queens benchmark for the ClassPad 300+, ClassPad 330 and
FX-CP400 has the same problem, because I also missed to use setdecimal at that time. I think I have
to remove the results of these calculators.
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3419
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: Calculons Pi comme Viète
En relisant ce fil, j'ai trouvé le moyen de gagner quelques octets: en gardant le même Label et RTN final, j'arrive à 21 octets.
Pour avoir les constantes 2 et 0 sur deux instructions distinctes (aux lignes 002 et 003), j'utilise une saisie semi-synthétique qui s'inspire de ce que l'on fait sur Ti-58c en éditant le code à postériori. J'entre d'abord :
Code : Tout sélectionner
001 LBL"V
002 2
003 ENTER^
004 0
005 _
L'autre économie est réalisé en conservant la valeur de B dans le registre LASTx ce qui économise quelque instruction de mouvement d e la pile.
Code : Tout sélectionner
(1) 002 2
(1) 003 0
(1) 004 +
(1) 005 LBL 01
(1) 006 2
(2) 007 ST* Y
(1) 008 LASTX
(1) 009 +
(1) 010 SQRT
(1) 011 /
(2) 012 DSE Y
(2) 013 GTO 01 (Total:21 octets en comptant (5) pour 001 LBL"V et (1) pour 014 RTN
J'ai testé cela marche parfaitement sur une TI-58c. Elle supporte pas mal d'astuces comme sur une TI-57 sauf pour deux différences fondamentales:
- La répétition de deux opérations arithmétiques successives qui d'éclanche une erreur (avec le clignotement et le blocage du clavier); c'est très gênant en cas de faux rebonds d'un clavier vieillissant !
- Les instructions de tests conditionnels, drapeaux et boucles ne 'sautent' pas une instruction mais déclenches ou non le 'saut' vers le label ou le numéro d'instruction indiqué.
Il y a donc parfois des astuces impossibles à réaliser comme on le fait parfois sur fx-602p, TI-57 ou les HP lorsqu'en fonction d'un résultat il n'y a qu'une seule opération à effectuer. On perd alors les octets nécessaires au label ou au saut
J'arrive aussi à 21 octets sur la TI-58c avec le code complet suivant:
Code : Tout sélectionner
000 47 CMs
001 42 00 STO 00
003 02 2
004-42 01 STO 01
006 65 ×
007 02 2
008 44 02 SUM 02
010 55 ÷
011 43 02 RCL 02
013 34 √x
014 42 02 STO 02
016 95 =
017 97 00 00 04 Dsz 0 004
021 92 RTN
On obtient PI = 3.1415592654 à partir de 17 itérations en environ 19".
Evidemment, il y a des codes plus courts mais qui ne font pas tout le staff; par exemple celui-ci ne fait que 14 octets, mais il faut le lancer et exécutant 2nd CMS 2 RST R/S et l'arrêter lorsque l'affichage arrive à une valeur constante de PI:
Code : Tout sélectionner
000-42 01 STO 01
002 65 ×
003 02 2
004 44 02 SUM 02
006 55 ÷
007 43 02 RCL 02
009 34 √x
010 42 02 STO 02
012 95 =
013 66 Pause
014 81 RST
C'est le plus court que j'ai mais aussi celui qui répond le moins aux contraintes de ce MPO.
Enfin, pour HP-71B en 50 octets (taille totale du fichier RAM):
Code : Tout sélectionner
CAT MPO60 BASIC 50 22/06/23 13:01
10 DESTROY ALL @ P=2 @ INPUT N @ FOR I=1 TO N @ B=SQR(B+2) @ P=2*P/B @ NEXT I @ DISP N;P
Donne instantanément (moins de 830 ms) sa meilleure approximation de PI ~ 3.14159265356 en 17 itérations.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.