Misez p'tit, optimisez n°60 : Calculons Pi comme Viète

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Calculons Pi comme Viète

Message par C.Ret » 05 nov. 2014 00:39

Gilles59 a écrit :Tu n'as pas la commande BYTES sur 28S ? Mettre le programme sur la puis BYTES...
SI j(ai depuis 2 minutes :

Code : Tout sélectionner

« 'XPrg' STO MEM 'XPrg' PURGE MEM SWAP - »
Je trouve 36 octets pour mon SQRT symbolique, 42.5 octets pour le programme de Bernouilli, 49 pour ta version et 63.5 pour ma version. Je rouille c'est sûr.

L'HP-28S est donc un peu plus économique, cela doit venir de la représentation des nombres entiers.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 756
Inscription : 06 oct. 2012 14:37

Re: Calculons Pi comme Viète

Message par tyann » 05 nov. 2014 00:41

Bonsoir Gilles59
Bravo ! tu m'as doublé, je voulais faire une version pour ce foudre de guerre :D
C'est certain que de passer de la Prime à la 66, ça fait un choc :wink:
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, El 5120, 9200, 9600

Canon X-07

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: Calculons Pi comme Viète

Message par badaze » 05 nov. 2014 00:51

Premier jet pour TI 57 II
22 pas. Donne 3.1415914 pour 10 itérations en 17 secondes.

Code : Tout sélectionner

CM
2
STO 2
1
0
STO 0
LBL 1
RCL 1
+
2
=
Racine x
STO 1
2
/
RCL 1
=
STO X 2 (Prd 2 sur TI 57 LED)
Dsz
GTO 1
RCL 2
R/S
Dernière édition par badaze le 05 nov. 2014 01:03, édité 1 fois.
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1428
Inscription : 27 oct. 2010 20:46

Re: Calculons Pi comme Viète

Message par Gilles59 » 05 nov. 2014 00:55

zpalm a écrit :Si l'on compte les octets la bonne vieille 41C s'en sort plutôt bien à égalité avec la WP 34S avec 24 octets malgré le label Alpha initial:

Code : Tout sélectionner

              Octets
01 LBL"V”       5
02 9            1
03 ENTER        1
04 2            1
05 ENTER        1
06 0            1
07 LBL 00       1
08 2            1
09 ST* Z        2
10 +            1
11 SQRT         1
12 ST/ Y        2
13 DSE Z        2
14 GTO 00       2
15 RDN          1
16 RTN          1
              -----
       Total:  24 octets
Cette machine est vraiment remarquable en effet ...
Coté mémoire la 50G prend d'office 10 octets avec un programme qui ne fait rien << >>
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: Calculons Pi comme Viète

Message par badaze » 05 nov. 2014 01:02

Second jet pour TI 57 II
20 pas. Donne 3.1415914 pour 10 itérations en 16 secondes.

Code : Tout sélectionner

CM
2
STO 2
1
0
STO 0
LBL 1
RCL 1
+
2
=
Racine x
STO 1
STO / 2 (Inv Prd 2 sur TI 57 LED)
2
STO X 2 
Dsz
GTO 1
RCL 2
R/S
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1428
Inscription : 27 oct. 2010 20:46

Re: Calculons Pi comme Viète

Message par Gilles59 » 05 nov. 2014 01:04

badaze a écrit :Premier jet pour TI 57 II
22 pas. Donne 3.1415914 pour 10 itérations en 17 secondes.
Joli ! Pour le coup les 502P / 602 et 603 ne feront pas mieux car l'instruction M* n'existe pas... Dommage car le programme aurait marché tel quel ;)

Vous remarquerez au passage que le convergence est très rapide ... Et paradoxalement j'atteint la précision maximale avec 17 itérations sur 50G. Ensuite non seulement çà ne s'améliore pas, mais ca se dégrade (sur les deux dernières décimales)

Un truc amusant sur la 50G :en décochant dans le mode CAS 'numérique' et en cochant 'approx' le programme affiche la formule symbolique de Viète avec la profondeur demandée.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: Calculons Pi comme Viète

Message par badaze » 05 nov. 2014 01:14

Troisième jet pour TI 57 II
18 pas. Donne 3.1415914 pour 10 itérations en 14,5 secondes.

Code : Tout sélectionner

CM
2
STO 2
1
0
STO 0
LBL 1
2
STO + 1 (SUM 1 sur TI 57 LED)
STO X 2
RCL 1
Racine x
STO 1
STO / 2 (Inv Prd 2 sur TI 57 LED)
Dsz
GTO 1
RCL 2
R/S
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5593
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Calculons Pi comme Viète

Message par Marge » 05 nov. 2014 01:36

bernouilli92 a écrit :C'est bien ce que je disais. En RPL, on est défavorisé quand on compte en octets, car chaque instruction fait 2,5 octets. En fait on devrait compter en nombre de pas. Après tout, il est fort probable qu'un pas sur wp34s prenne plus qu'un octet.
Du coup ma proposition fait 20 pas.
Je ne suis pas d'accord, bernouilli : les machines les moins anciennes proposent de meilleures possibilités, mais si c'est au détriment de la mémoire utilisée, cela doit être comptabilisé. :|

Enfin, bien sûr, si nous sommes dans un MPO. :D

J'édite au vol : on pourrait tester un barème en fonction de la mémoire maximum de la machine nue... :?:
Mais quel barème ? pondéré ? et comment ?
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 4847
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: Calculons Pi comme Viète

Message par bernouilli92 » 05 nov. 2014 02:01

Marge a écrit :
bernouilli92 a écrit :C'est bien ce que je disais. En RPL, on est défavorisé quand on compte en octets, car chaque instruction fait 2,5 octets. En fait on devrait compter en nombre de pas. Après tout, il est fort probable qu'un pas sur wp34s prenne plus qu'un octet.
Du coup ma proposition fait 20 pas.
Je ne suis pas d'accord, bernouilli : les machines les moins anciennes proposent de meilleures possibilités, mais si c'est au détriment de la mémoire utilisée, cela doit être comptabilisé. :|

Enfin, bien sûr, si nous sommes dans un MPO. :D

J'édite au vol : on pourrait tester un barème en fonction de la mémoire maximum de la machine nue... :?:
Mais quel barème ? pondéré ? et comment ?
Ok mais comment comptabiliser la mémoire utilisée?
Les hp en RPL donnent la taille d'un programme en octets alors qu'un pas fait 2,5 octets. Ce que j'appelle un pas c'est la taille que prend l'instruction la plus petite.
On parle bien de pas dans le cas d'une hp 41 ? Il se trouve que sur la hp 41, un pas fait 14 bits, doit on comparer la taille d'un programme hp41 à celui d'un programme RPL en prenant l'octet comme unité?
Pour manipuler la pile, la hp41 est bien mieux lotie que le RPL, notamment avec les instructions de type RCLx Z ou ST/ Z.
Je pense qu'on devrait utiliser le pas comme unité, quelque que soit la machine.

EDIT : je me suis trompé sur la hp41, chaque instruction fait un octet, soit 8 bits et non 14. J'ai confondu avec la taille des registres qui font 14 nibbles.
Dernière édition par bernouilli92 le 05 nov. 2014 02:12, édité 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5593
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Calculons Pi comme Viète

Message par Marge » 05 nov. 2014 02:11

bernouilli92 a écrit :
Marge a écrit :
bernouilli92 a écrit :C'est bien ce que je disais. En RPL, on est défavorisé quand on compte en octets, car chaque instruction fait 2,5 octets. En fait on devrait compter en nombre de pas. Après tout, il est fort probable qu'un pas sur wp34s prenne plus qu'un octet.
Du coup ma proposition fait 20 pas.
Je ne suis pas d'accord, bernouilli : les machines les moins anciennes proposent de meilleures possibilités, mais si c'est au détriment de la mémoire utilisée, cela doit être comptabilisé. :|

Enfin, bien sûr, si nous sommes dans un MPO. :D

J'édite au vol : on pourrait tester un barème en fonction de la mémoire maximum de la machine nue... :?:
Mais quel barème ? pondéré ? et comment ?
Ok mais comment comptabiliser la mémoire utilisée?
Les hp en RPL donnent la taille d'un programme en octets alors qu'un pas fait 2,5 octets. Ce que j'appelle un pas c'est la taille que prend l'instruction la plus petite.
On parle bien de pas dans le cas d'une hp 41 ? Il se trouve que sur la hp 41, un pas fait 14 bits, doit on comparer la taille d'un programme hp41 à celui d'un programme RPL en prenant l'octet comme unité?
Pour manipuler la pile, la hp41 est bien mieux lotie que le RPL, notamment avec les instructions de type RCLx Z ou ST/ Z.
Je pense qu'on devrait utiliser le pas comme unité, quelque que soit la machine.
Et comment fait-on avec les machines en BASIC ?
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: Calculons Pi comme Viète

Message par jvernet » 05 nov. 2014 11:32

Marge a écrit : Et comment fait-on avec les machines en BASIC ?
MEM avant, MEM après. Il faut compter en Unité de mémoire que connait la machine, pas ou Octets, c'est selon.
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1428
Inscription : 27 oct. 2010 20:46

Re: Calculons Pi comme Viète

Message par Gilles59 » 05 nov. 2014 14:28

Une approche différente (utilisant une liste) ,mais toujours plus que Bernouilli

Code : Tout sélectionner

«
 2 1 0 
 0 9  START 
   2 + √ DUP
 NEXT 
 12 →LIST / ΠLIST
»
54.5 octets
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
Rom1500
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 701
Inscription : 29 nov. 2013 17:24
Localisation : Pas très loin de Lyon
Contact :

Re: Calculons Pi comme Viète

Message par Rom1500 » 05 nov. 2014 15:41

Marge a écrit :Et comment fait-on avec les machines en BASIC ?
Sur PC-1500 :
10:A=2:B=0:FOR I=0TO 9:B=SQR(B+2):A=A*2/B:NEXT I
Le résultat est dans la variable A
Mémoire utilisée = 42 octets
Toutes les infos : http://www.pc-1500.info
PC-1500+CE-150 : EU PC1500, PC1500A / JP PC1500, PC1500D, PC1501 / HU PTA4000, PTA4000+16 / US TRS80 PC2 / BR PC-1500RP, PC-1500RP2 / CN PC-1500, PC-1500A, Nanfeng PC-1500A
PC-1600 : PC-1600K V2, CE-1600M, CE-1604L, CE-515P, module 32Ko, module 512Ko
Extensions en boite : CE-150/151/152/153/154/155/156/157/158/159/160/161/162E/163 sans boite

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5593
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Calculons Pi comme Viète

Message par Marge » 05 nov. 2014 17:48

jvernet a écrit :
Marge a écrit : Et comment fait-on avec les machines en BASIC ?
MEM avant, MEM après. Il faut compter en Unité de mémoire que connait la machine, pas ou Octets, c'est selon.
I am sorry, Jay, I am afraid I can't do that. :roll: :wink: :lol:
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 4847
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: Calculons Pi comme Viète

Message par bernouilli92 » 05 nov. 2014 18:43

C.Ret a écrit :
Gilles59 a écrit :Tu n'as pas la commande BYTES sur 28S ? Mettre le programme sur la puis BYTES...
SI j(ai depuis 2 minutes :

Code : Tout sélectionner

« 'XPrg' STO MEM 'XPrg' PURGE MEM SWAP - »
Je trouve 36 octets pour mon SQRT symbolique, 42.5 octets pour le programme de Bernouilli, 49 pour ta version et 63.5 pour ma version. Je rouille c'est sûr.

L'HP-28S est donc un peu plus économique, cela doit venir de la représentation des nombres entiers.
Ton programme BYTES n'est pas correct, car il ne tient pas compte de la taille mémoire utilisée par le nom de la variable XPRG, ni de la taille mémoire utilisée par la valeur du premier MEM.

J'ai essayé de le corriger pour qu'il affiche une valeur exacte, j'ai fait plusieurs essais, en désactivant le LAST, en mettant quelque chose dans XPRG avant, et au final voici ce que je propose, qui est très proche du tien :

Code : Tout sélectionner

<< 'XPRG' STO MEM 'XPRG' PURGE MEM SWAP - 7.5 + >
Cela donne de bons résultats : le programme vide renvoi 10, un nombre réel 10.5, un nombre complexe 18.5, ce qui correspond à la représentation interne des objets (voir bouquin "voyage au centre de la hp28s").

Du coup, mon programme fait de nouveau 50 octets, ce qui est la même taille que sur hp48, ce qui n'est pas étonnant.
Dernière édition par bernouilli92 le 09 nov. 2014 14:54, édité 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres

Répondre

Revenir vers « Tous les Pockets »