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
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 »

Hello, Xerxes,

One question out of topic: did you run your benchmark test on the HP-29c? I didn't see any result for this machine... perhaps too many steps are required?
I got my own HP-29c, it would be a pleasure to me to test this Queens problem if needed.
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
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 »

Xerxes a écrit :
badaze a écrit :It has already a Trace mode that displays the current step when running if you think it's too quick. ;)
The TI-62 is a bit curious. As you mentioned there is a trace mode to keep track of a running program,
but even in trace off mode you can still see the programming steps running but faster of course.
In the trace on mode the TI-62 needs 77 seconds for 10 iterations.
As a TI 62 user I noticed the slowlyness of the device and the fact that even in "fast" mode it was slow.

I've tried the trick on a TI 57 II and it works.
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 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 »

Marge a écrit :One question out of topic: did you run your benchmark test on the HP-29c? I didn't see any result for this machine....
Merci beaucoup for your offer, but the 29c is already tested with 42 minutes. I know the list is very long and sometimes it's easy to overlook a calculator. :wink:
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 »

Okay, I made a quick search with "29" and fished too many results. :?

42 minutes is not a high score.
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
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5632
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

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

Message par ledudu »

Quelques pas de gagnés et un peu de précision :
zpalm a écrit :Sur Casio Pro fx-1 (ou fx-201p/202p), en 59 pas et 3 registres:

Code : Tout sélectionner

MAC:ENT0:1=K2:                    10 pas
ST#1:2=2+K2:2=2√:1=1xK2/2:        24 pas
0=0-K1:IF0=K0:2:2:1:              19 pas
ST#2:ANS1:                         6 pas
                           TOTAL: 59 pas
Il faut neuf secondes pour faire 9 boucles et afficher 3.141587733.

Code : Tout sélectionner

MAC:ENT0:1=K2:                   10 pas
ST#1:2=2√+K2:1=1xK2/2√:          21 pas
0=0-K1:IF0:1:2:1:                16 pas
ST#2:ANS1:                        6 pas
                          TOTAL: 53 pas
Il faut neuf secondes pour faire 9 boucles et afficher 3.14159143.
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 »

Bien vu ! Je ne savais pas que l'on pouvait faire IF0 tout seul...
Modifié en dernier par zpalm le 23 nov. 2014 17:15, modifié 1 fois.
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5632
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

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

Message par ledudu »

zpalm a écrit :Bien vu ! Je ne savais pas sur l'on pouvait faire IF0 tout seul...
Merci. J'ai testé à tout hasard, ce n'est pas documenté...
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 »

J'avais oublié mon pot de passe : et bien les captcha de Silicium sont diaboliques 8O
j'ai cru ne jamais parvenir à me reconnecter ....

J'avais promis une synthèse ce ce sujet , et synthèse il y aura. Mais vu la richesse des échanges il y a matière à un article pour la prochaine Gazette et je vais le faire en ce sens ... :)
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 »

Bonjour, Gilles,

Je dois confirmer quelque chose à propos de la HP-65 si tu écris un article :

"The data register circuit is made up of ten address
able data registers of 56 bits each, enough to store 14
digits each. Data register 0 is used to implement a
LSTx (last x) function and always contains the pre
viously displayed number. Registers 1 through 9 are
addressable from the keyboard. Addresses and data
are transferred between the data register circuit and
the arithmetic and register circuit by way of a bidirec
tional BCD bus.
"

http://www.hpl.hp.com/hpjournal/pdfs/Is ... 974-05.pdf

56 bits, cela fait bien 7 octets.

Sinon, il faudrait trouver un red'chef pour la Gazette. Image
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 :Sinon, il faudrait trouver un red'chef pour la Gazette. Image
Des candidats ? C'est top comme boulot, vous pouvez lire les articles avant tout le monde, vous décidez de l'organisation et de la présentation de la gazette :D
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 »

Code : Tout sélectionner

10 N=1,D=0,P=2
20 D=SQR(2+D),P=P*2/D,N=N+1:IF D<2 THEN 20
30 PRINT P;" -  ";N
Avec calcul de la profondeur MAX calculé en N
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7141
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

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

Message par gege »

zpalm a écrit :
Marge a écrit :Sinon, il faudrait trouver un red'chef pour la Gazette. Image
Des candidats ? C'est top comme boulot, vous pouvez lire les articles avant tout le monde, vous décidez de l'organisation et de la présentation de la gazette :D
N'oublions pas le prestige, les interviews à la TV, les conquêtes féminines (ou masculines pour les rédacteuses en cheffettes), les contrats juteux, la gloire...
Mais le plus important, ce sont les articles !
On a le temps, non ? C'est pour Février ?
A bientôt,
G.E.
Avatar du membre
agent_macgeek
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 117
Enregistré le : 22 févr. 2014 17:18
Localisation : Bienne - Suisse
Contact :

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

Message par agent_macgeek »

Sur HP 35s, après un brutal effort d'adaptation, ça donne ça :

Code : Tout sélectionner

V001 LBL V
V002 INPUT M
V003 2>X
V004 SQRT(X)>Y
V005 Xx2÷Y>X
V006 SQRT(2+Y)>Y
V007 DSE M
V008 CLSTK
V009 RCL M
V010 x=0?
V011 VIEW X
V012 GTO V005
V013 RTN
CK=70D9
LN=69

> est l'équivalent de STO dans une équation et la touche EQN permet de faire des économies substantielles... :mrgreen:

10 itérations bouclées en 4 secondes 6 approximativement, le chronométrage avec l'écran tactile d'un HTC One Mini étant un sport à peu près aussi exigeant que le billard... :mrgreen:

Le résultat obtenu étant, évidemment, 3,14159142151 à la décimale affichée près.
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
Tipoucet
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3787
Enregistré le : 10 janv. 2009 13:47

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

Message par Tipoucet »

Sur CASIO FX-50+ : 3 secondes pour 17 itérations donnant 9 décimales correctes. 9 secondes pour 100 itérations.

Image Image Image Image
Image

:D
Dominique
Avatar du membre
agent_macgeek
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 117
Enregistré le : 22 févr. 2014 17:18
Localisation : Bienne - Suisse
Contact :

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

Message par agent_macgeek »

zpalm a écrit :
Marge a écrit :Je me demande bien comment tu obtiens ton signe V¨¨ (racine carrée) dans ton code publié...
Un simple copier/coller ... :wink:

Pour changer de style de programmation, voici une formule pour le solveur des HP 17BII/27S/19BII. Elle utilise la fonction sigma pour la boucle et les fonctions Let et Get pour gérer des variables intermédiaires cachées.

Code : Tout sélectionner

Version avec A et B cachées:
V=L(A:2)xL(B:0)x∑(I:1:N:1:L(A:G(A)x2/L(B:SQRT(2+G(B)))))+G(A)

Version avec A et B visibles:
V=L(A:2)xL(B:0)x∑(I:1:N:1:L(A:Ax2/L(B:SQRT(2+B))))+A
Utilisation : N est le nombre de boucle, V le calcul de Pi selon Viète, A et B sont des variables intermédiaires non visibles. Par exemple: 9 [N] affiche N=9.00 puis [V] lance le calcul et retourne en moins de 2 secondes : 3.14158772527.
Bon, avec 72 octets pour le stockage de la première formule et 63 pour la deuxième, on est loin de la compacité du RPN…en partie à cause de la foultitude de parenthèses.

Petite explication:
  • L(A:2) initialise A à 2 et retourne 2
  • L(B:0) initialise B à 0 et retourne 0
  • ∑(I:1:N:1: boucle d’indice I, de 1 à N avec un pas de 1
  • L(A:G(A)x2/L(B:SQRT(2+G(B)))) c’est là que se fait le calcul :
    • G(A) et G(B) permettent de rappeler les valeurs de A et B sans montrer les variables dans le menu. On peut utiliser A et B à la place de G(A) et G(B) mais alors A et B sont visibles dans le menu.
    • L(B:SQRT(2+G(B))) retourne √(2+B) et le stocke dans B
    • L(A:G(A)x2/ L(B:SQRT(2+G(B))) retourne Ax2/√(2+B) et le stocke dans A
  • La fonction ∑ fait la somme de toutes les valeurs Ax2/√(2+B) calculées pour chaque valeur de I, puis le résultat est multiplié par 2 ( L(A:2) ) et par 0 ( L(B:0) ) ce qui fait 0.
  • Enfin on ajoute ce 0 à la valeur finale de A retournée par G(A) pour avoir le résultat V.
Merci zpalm !

C'est génial ce que cette variante du Solveur est capable de faire. Une façon de programmer simple, efficace et élégante. :)
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
Répondre

Retourner vers « Tous les Pockets »