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 du membre
babaorhum
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 454
Enregistré le : 13 janv. 2013 19:44
Localisation : Marseille-est

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

Message par babaorhum »

Merci Gilles59 pour ce MPO passionnant, qui nous fait voir pleins de belles choses, une fois de plus, et merci zpalm pour ces rappels et nouvelles propositions judicieuses.
Les RPN restent donc devant, la wp34s en tête, mais d'une très courte tête par rapports aux AOS et autres logiques de calcul ! (on dit comment pour les casio ?) et donc bravo aux casio fx et TI-57 qui ont une logique d'optimisation différente et tout aussi subtile.
Je précise que ma proposition sur 42s fonctionne parfaitement sur une 41C - elle occupe par contre 27 octets (avec le END) et 13 pas donc ...
peut on faire mieux ?
BaBaoRhum
HP J728,200LX,1000CX,75C,71B,48GX,42s,41CX,32E,32Sii,28S,22s,21,16C,11C
Sharp PC- E500,1600,1500,1350,1261,1245
Casio FX-502P,602p,850P,3900P,4000P
TI-74,92,95 ; Canon X-07 ; TANDY EC-4026 ; Wp34S
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6172
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

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

Message par Marge »

Pas de problème pour moi pour ajouter un RTN final si ça sert pour un classement éventuel dans lequel j'apparaitrais au bas du tableau :wink: .

17 pas, donc, 31 octets sur 29c ; je n'aurai pas le temps de chercher un autre algo. permettant de s'affranchir des registres additionnels...

Mes félicitations aux compétiteurs et merci pour ce bel MPO ! :D

PS :
une solution sur 15C LE en 18 pas et 1 registre, soit 25 octets
Bien joué, zpalm et babaorhum !
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2919
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

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

Message par zpalm »

Marge a écrit :Bien joué, zpalm et babaorhum !
Merci :D , je pense que les solutions en 14 et 18 pas de la 15C doivent aussi fonctionner sur la 29C en remplaçant le registre I par le registre 0.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

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

Message par Gilles59 »

zpalm a écrit : (....)

Sinon sur HP 15C on peut aussi faire en 14 pas comme les machines non RPN; mais comme elles on utilise

alors 2 registres mémoires ce qui fait 28 octets, soit plus que

ma solution en 19 pas + 1

registre (26 octets)
. Solution qui au passage marche bien sur ma 15C LE, as-tu vérifié si tu n'as

pas fait d'erreur de saisie?
:
J'ai vérifié 3 fois le programme en 19 pas et tout est bien OK : chaque code est bien exactement le même..

c'est bizarre...
Quand je passe en mode édition, la premiere chose qu'affiche la 15 C LE est
000-

normal ?

10 f A donne
3.140331158

20 f 1 donne
3.141591422

Il faut faire 2x fois plus de boucle pour le bon résutat ....
:roll:
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+ CM14 et MM12 / Alice 32
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6172
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

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

Message par Marge »

Tu as mis le doigt sur un bug. Beeeerkkk ! :arrow:
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2919
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

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

Message par zpalm »

Gilles59 a écrit : Il faut faire 2x fois plus de boucle pour le bon résutat ....
:roll:
Tu n'aurais pas un LBL 0 / DSZ I en plus qui trainerait dans ta mémoire programme?
En mode normal tape GTO A GTO 0 GTO 0, passe en mode programme, tu dois être au pas 007 sur le LBL 0, si ce n'est pas le cas c'est qu'il y a un autre LBL 0.
En général, avant de rentrer un programme je fait f CLEAR PRGM.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

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

Message par Gilles59 »

babaorhum a écrit :Merci Gilles59 pour ce MPO passionnant, qui nous fait voir pleins de belles choses, une fois de plus, et merci zpalm pour ces rappels et nouvelles propositions judicieuses.
C'est le mystère des MPO ;) Je ne pensais pas qu'il y aurait autant de contributions différentes....

@Zpalm : je vérifie encore je dois me planter quelque part en effet, pourtant j'ai bien revérifié déjà ...

EDIT :j'ai vérifié y compris ton test : tout OK. J'efface tout et recommence ...

reEDIT : CLEAR PRGM - Resaisie :tout OK !! Y'a un truc là ;D Pas faute d'avoir vérifier 4 fois avant pourtant code par code ...!
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+ CM14 et MM12 / Alice 32
Avatar du membre
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 8385
Enregistré le : 12 févr. 2007 18:36
Localisation : Pas très loin de Lyon
Contact :

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

Message par badaze »

Pour ma part, c'est pas trop mathématique et ça tient sur une TI 57 ( ma machine exclusive pour les MPO ).
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 : 1602
Enregistré le : 27 oct. 2010 20:46

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

Message par Gilles59 »

Une version RPL qui permet de générer la formule originale (symbolique) de Viete avec la profondeur souhaitée :

Code : Tout sélectionner

«
 2 '2/√2'
 0 9 START 
   * LAST NIP {'√2' '√(2+√2)'} ↓MATCH  DROP 
 NEXT
 *
»
Image
Devrait fonctionner sur 48 en remplaçant NIP par SWAP DROP
(j'ai essayé de saisir sur ma vieille 48SX :quel plaisir que la qualité de ce clavier exceptionnel, j'avais oublié ! :O :D ,par contre je ne sais plus comment saisir la flêche basse!)

->NUM donne la valeur numérique

PS : Synthèse de ce topic pour ce WE j'espère
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+ CM14 et MM12 / Alice 32
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

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

Message par charognard »

Sur E500 (Sharp pour le incultes ;)
Avec quelques subtilités dans le code
- affectations séquentielles grâce à l'AER.
- Le GOTO paramétré du SHARP
- Le test Booléen dans une expression.


[BASIC]

Code : Tout sélectionner

1 PRINT AER 1(0,2,10)                    'Affectation
2 IF AER 1(SQR(B+2),A*2/B,C-1) THEN 2    'Incrémentation
3 PRINT A
[AER]
01:VIETE

Code : Tout sélectionner

F(B,A,C)=C
Au niveau de l'AER je vous renvoie à ce post
viewtopic.php?f=46&t=27602&hilit=E500


Pour info le mode AER de E500 n'est pas compatible avec la double précision
Modifié en dernier par charognard le 14 nov. 2014 13:03, modifié 4 fois.
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

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

Message par jvernet »

Charo: joli !! Le BASIC du e500 est vraiment balaise, celui du e650 encore plus proche du C, finalement.
"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."
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

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

Message par charognard »

J'ai changé mon code de façon à le rendre encore plus incompréhensible ;)

D'une aire d'autoroute, pas testé, mais théoriquement ça fonctionne.
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

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

Message par jvernet »

Quelle occupation mémoire ?
"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."
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

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

Message par charognard »

Pas plus que le code que tu vois, ce n'est pas récursif
Avatar du membre
Xerxes
Fonctionne à 300 bauds
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

Message par Xerxes »

A shorter solution for the FX-180P series:

Code : Tout sélectionner

P1:

01  Min
02  KAC
03  2
04  Kin1

P2:

01  2
02  Kin*1
03  Kin+2
04  Kout2
05  SQRT
06  Kin/1
07  Kin2
08  1
09  M-
10  MR
11  x>0
12  Kout1

Répondre

Retourner vers « Tous les Pockets »