Misez p'tit, Optimisez - N°16 (Fibonacci)

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
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par Gilles59 »

gege a écrit :Bonjour,
Pour sauver l'honneur de Casio, une version qui consomme une place incroyable (60 octets !) mais qui est rapide. Pour Graph 85 :

FIBONACC
?->N:RndFix(((1+¥5)/2)^N/¥5,0)->F:F

(¥ etant le signe de la racine carree).
Ca calcule F(49)=7778742049 en un temps non mesurable (mais une bete boucle est indecelable de l'instantane aussi).
On a aussi F(68) calcule comme 72723460248157, alors que les deux derniers chiffres devraient etre 41. Pas anormal cependant.
G.E.
sur 50, ca donne (en RPL)
« 1 5 V + 2 / SWAP ^ 5 V / 0 RND »
et 42,5 octets

en algébrique :
«  -> N 'RND( ((1+V5)/2)^N/V5,0)' »
et 56 octets

Pour la précision, la 50 n'affiche que 12 chiffres significatifs en réel, c'est combien sur la casio ?
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
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3626
Enregistré le : 06 sept. 2011 14:57
Localisation : Normandie

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par Hobiecat »

Bon, voilà un MPO plié ou presque en 1 jour et 1/2 avec moultes versions plus brillantes les unes que les autres pour nos différentes machines !

Ça vous manquait tant que ça ? :mrgreen:

Allez, qui se motive pour le MPO N°17 ???
Avatar du membre
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 8384
Enregistré le : 12 févr. 2007 18:36
Localisation : Pas très loin de Lyon
Contact :

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par badaze »

Hobiecat a écrit :Bon, voilà un MPO plié ou presque en 1 jour et 1/2 avec moultes versions plus brillantes les unes que les autres pour nos différentes machines !

Ça vous manquait tant que ça ? :mrgreen:

Allez, qui se motive pour le MPO N°17 ???
En ce qui me concerne, il était compréhensible.
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
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par C.Ret »

Ce fils est fort complet. Il ne manque qu'une verson pour Pocket BASIC, par exemple comme le SHARP PC-1211 :

Code : Tout sélectionner

10 "F" AREAD N:A=1:B=0
20 IF N>0 LET B=A+B,A=B-A,N=N-1:GOTO 20
30 PRINT B:END

ou

10 "F" AREAD N:USING "########":PRINT N,((1+√5)/2)^N/√5:END

Voilà qui est fait.
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.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par Gilles59 »

Version plus courte et plus claire pour Casio 602P

Code : Tout sélectionner

SAC Min00
1 Min08 M+00
LBL0
  MR08 X<->M07 M+08
  DSZ
GOTO0
En 11 pas.

SAC Efface les mémoires de stats 07 08 09

comme quoi on a jamais fini d'optimiser !
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
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3626
Enregistré le : 06 sept. 2011 14:57
Localisation : Normandie

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par Hobiecat »

Gilles59 a écrit :Comme quoi on a jamais fini d'optimiser !
Et c'est ce qui fait tout le sel des Misez P'tit Optimisez, de nos jours où la place mémoire n'est plus vraiment problématique !
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°16 (Fibonacci)

Message par Marge »

Comme disait P. de Coubertin, l'important, c'est de participer.

(je m'en retourne au pétrin :mrgreen: )
Avatar du membre
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 8384
Enregistré le : 12 févr. 2007 18:36
Localisation : Pas très loin de Lyon
Contact :

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par badaze »

Marge a écrit :Comme disait P. de Coubertin, l'important, c'est de participer.

(je m'en retourne au pétrin :mrgreen: )
Coluche disait que c'est de partirpicé. :arrow:
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
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°16 (Fibonacci)

Message par Marge »

J'avais confondu avec Fabinocci. :mrgreen:

Last and least, voici mon code pour HP-29c. Il fonctionne ! c'est déjà une sacrée victoire, à un moment j'ai bien cru que j'étais mûr pour l'hospice. Il est brut, et mesure une bonne vingtaine de pas.

Code : Tout sélectionner

01  15 13 09    LBL 9     "Je commence tjrs mes programmes ainsi, comme un sou(s) neuf"
02  15 71        x=0
03  15 12        RTN
04        02       2
05        21    x<->y
06   14 41       x<=y
07   13 00       GTO 0
08   23 00       STO 0
09   15 23       DSZ
10   15 23       DSZ
11        01       1
12        31     ENTER
13   15 13 08    LBL 8
14        51       +
15   15 23       DSZ
16   13 01       GTO 1
17        74       R/S
18   15 13 01    LBL 1
19   14 73       LAST x
20        21     x<->y
21   13 08       GTO 8
22   15 13 00    LBL 0
23        01       1
24        74       R/S
Entrer N, presser GSB puis 9.

Je crois que c'est le plus long programme de ce MPO. :lol: Mais c'est toujours un plaisir de programmer cet engin allongé dans le canapé. :pirat:

Il est complet, mais aussi très lent : la limite de l'affichage à 10 chiffres [F(49) = 7 778 742 049] est obtenu en 18 s. environ.
Modifié en dernier par Marge le 28 mai 2012 02:47, modifié 1 fois.
Avatar du membre
oli
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 311
Enregistré le : 30 mars 2012 14:13
Localisation : CH

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par oli »

Marge a écrit :la limite de l'affichage à 10 chiffres [F(49) = 7 778 742 049] est obtenu en 18 s. environ.
c'est 9 sec plus rapide qu'une 15c !!!
Que les anciennes hp (RPN) avant qu'elles ne soient Made in China !!!
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°16 (Fibonacci)

Message par Marge »

oli a écrit :
Marge a écrit :la limite de l'affichage à 10 chiffres [F(49) = 7 778 742 049] est obtenu en 18 s. environ.
c'est 9 sec plus rapide qu'une 15c !!!
Diantre ! 8O
Je crois que ce dimanche, je vais sortir la 33, la 34 et la 67 pour tester tout ça.
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°16 (Fibonacci)

Message par Marge »

Résultat pour l'HP-34c :

Grâce au manuel en ligne mis à disposition par Zpalm, et au prix d'une légère modification (Sto i au lieu de Sto 0, DSE au lieu de DSZ), la solution de F(49)=7.778.742.049 (tel qu'affiché par mon calculateur allemand) est obtenue en 36 s. environ, soit le double du temps de l'HP-29c.
Modifié en dernier par Marge le 28 mai 2012 02:48, modifié 1 fois.
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°16 (Fibonacci)

Message par Marge »

Résultat pour l'HP-67 :

Suivant les modifications de mon (superbe) programme effectuées pour l'HP-34c, le résultat de F(49) est obtenu en 24 s. environ, soit 6 s. de plus que l'HP-29c.

[En passant, en éditant, j'ai été assez surpris de trouver la touche x<->y accessible uniquement VIA la touche h.]

Je ne pense pas faire le test de l'HP-33, car l'absence de compteur de boucles serait trop handicapant.

En revanche, essayer l'HP-41c... mais là je crois qu'elle va l'emporter.
Modifié en dernier par Marge le 28 mai 2012 02:49, modifié 2 fois.
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°16 (Fibonacci)

Message par Marge »

Résultat pour l'HP-41c (2212S....) :

Le programme a été davantage modifié, car le test x>=y n'existe pas sur cet ordinateur de poche ; néanmoins, ce test se situe hors de la boucle et influe peu sur le temps de calcul.

Le résultat est brillant : 9 secondes, soit deux fois moins que l'HP-29c, cependant meilleur temps dans la catégorie des calculatrices à affichage par diodes électroluminescentes.
Modifié en dernier par Marge le 28 mai 2012 02:51, modifié 1 fois.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez p'tit, Optimisez - N°16 (Fibonacci)

Message par Gilles59 »

Coté vitesse la Casio 602P trace :

3,5 sec environ avec le programme en 11 pas au dessus pour F(49)
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
Répondre

Retourner vers « Tous les Pockets »