MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

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
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2221
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par remy »

J'ai un peu optimisé sur le JR-800 et je passe de 123 à 60octets

Code : Tout sélectionner

10 DEFDBLX:X=1:J=0
20 X=X*2:IFX=X+1THENPRINTJ,J*LOG(2):END
30 J=J+1:GOTO20
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 »

Sympa ce mpo d’anniversaire qui s’adapte à toutes les machines !
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
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 »

Marge a écrit : 16 oct. 2020 02:05 Bon, pour montrer l'exemple, voici mon premier programme pour Turbo Pascal 5.5 sur le HP 200-LX. On ne rit pas !
Cool le TP5.5. De mémoire il a les surcouches objet etc! Il a combien de ram le 500lx?
Je me demande si la 5.5 ne gérerait pas les réels double précision (remplacer ‘Real ´ par ´double ‘)
Modifié en dernier par Gilles59 le 17 oct. 2020 14:26, modifié 1 fois.
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
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

Gilles59 a écrit : 17 oct. 2020 11:54EDIT : j'ai une version 23 pas (sans compter le pas du programme P0 ou autre), mais je vous laisse chercher ;D
Il va falloir chercher encore un peu, j'ai une première version en 21 pas:

Code : Tout sélectionner

P0                              (491)
     MAC 1                       002
LBL0 M+F MRF + 1 = x=F? GOTO9    010    
     MRF ISZ GOTO0               013              
LBL9 MR00 HLT * 2 log =          020           
PO affiche 37. EXE 11.1381

EDIT 12/03/2022: Suite à la remarque faite par zpalm dans son post du 12 mars 2022, je me vois contraint de corriger ce code erroné qui ne donne pas la bonne valeur.

Le code correct est :

Code : Tout sélectionner

P0                              (491)
     MAC 2                       002
LBL0 M+F MRF + 1 = x=F? GOTO9    010    
     MRF ISZ GOTO0               013              
LBL9 MR00 HLT * 2 log =          020           

PO affiche 36. EXE 10.83707984
Modifié en dernier par C.Ret le 12 mars 2022 18:10, modifié 3 fois.
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: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 »

Bravo c.ret! Le MAC est un peu violent mais gagne 2 pas. Je suis quasi sûr qu’on est au mini là. Mais Je n’y mettrai pas ma main à couper car avec les mpo on ne sait jamais! Mais même sans ça mon prg est un peu plus long car je n’avais pas ton astuce pour supprimer le *2 ;D
Modifié en dernier par Gilles59 le 17 oct. 2020 14:34, modifié 1 fois.
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
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Danny »

Sur HP-65: 33 / 9.934

Il lui faut environ 50 secondes.

IMG_8056.jpg
IMG_8056.jpg (89.25 Kio) Vu 5995 fois
IMG_8057.jpg
IMG_8057.jpg (87.36 Kio) Vu 5995 fois

En fait on peut remplacer ça :

Code : Tout sélectionner

IF (X+1) <> X THEN GOTO 2
GOTO 3
LBL 2
Par simplement :

Code : Tout sélectionner

IF (X+1) = X THEN GOTO 3

Mon code :

Code : Tout sélectionner

23
11		LBL A
21
83
08		DSP .8
01		1
33 01		STO 1
00		0
33 02		STO 2
23
01		LBL 1
34 01		RCL 1
02		2
71		x
33 01		STO 1
34 01		RCL 1
41		ENTER
01		1
61		+
35 23		X=Y?
22
03		GTO 3
34 02		RCL 2
01		1
61		+
33 02		STO 2
22
01		GTO 1
23
03		LBL 3
34 02		RCL 2
34 02		RCL 2
02		2
31
08		LOG
71		x
24		RTN
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

Gilles59 a écrit : 17 oct. 2020 14:22
Marge a écrit : 16 oct. 2020 02:05 Bon, pour montrer l'exemple, voici mon premier programme pour Turbo Pascal 5.5 sur le HP 200-LX. On ne rit pas !
Cool le TP5.5. De mémoire il a les surcouches objet etc! Il a combien de ram le 500lx?
Je me demande si la 5.5 ne gérerait pas les réels double précision (remplacer ‘Real ´ par ´double ‘)
Je suis complètement novice en pascal, mais en effet la 5.5 gère la double-précision (voir mon deuxième programme, ou plutôt ma dernière tambouille).
En revanche je ne sais pas mesurer le code 8086 compilé en mémoire vive, si tu as une idée...
Le 200LX possède 2 méga-octets de mémoire vive.
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
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

Pour SHARP PC-1211 :

Code : Tout sélectionner

 1:CLEAR :X=1                      ( 8)
 2:X=2X:IF X<>X+1 LET J=J+1:GOTO 2 (23)
 3:PRINT J,J*LOG 2                 (10)
                                    41 octets 
Il lui faut alors 19"41 pour réaliser que sa précision est 39. soit 11.7402 chiffres significatifs !

Je comprends pas pourquoi marge met les Commodore au début de la liste des machines qui ont du mal avec ce test !

Sur un Commodore C128D à 2 MHz

Code : Tout sélectionner

list

1 x=2:do:j=j+1:x=2*x:loop while x+1<>x:print j,j*log(2)/log(10)

ready.
run
 32        9.63295986

ready.
REM   Program size 47 bytes   Variables and run cost 14 bytes
Il ne lui faut qu'un quart de seconde pour se rendre compte qu'il ne sait calculer que sur ses 9 doigts ! C'est bien pour un 8 bits !


Je suis inquiet, j'ai donné le même programme à ma TI-92 II et je n'ai toujours pas de résultat.

Code : Tout sélectionner

:mpo()                    Code: 84 bytes     
:Prgm
:Local x,j
:1▸x
:-1▸j
:While x+1>x
:  x+x▸x
:  1+j▸j
:EndWhile
:Disp j,approx(j*log(2))
:EndPrgm
EDIT:
Il lui a fallu le temps de poster tout cela, mais le résultat est arrivé 2039 soit 613.8 chiffres significatifs. Bien. Pas surprenant la TI-92 II et forte en calcul sur les entiers très longs.
En mode approché, je trouve 46 soit 13.8473 chiffres significatifs.

C'est exactement ce que je trouve sur la TI-74 BASICALC

Code : Tout sélectionner

10 X=1
20 X=2*X: IF X+1<>X THEN J=J+1: GOTO 20
30 PRINT J;J*LOG(10): PAUSE

FRE(1) donne 84 bytes
Modifié en dernier par C.Ret le 25 oct. 2020 08:02, modifié 7 fois.
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: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 »

J’ai bien fait de ne pas mettre ma main à couper :lol:

Code : Tout sélectionner

MAC 1 
LBL0
 XD 1 MinF MR08 M+F x=f GOTO9
ISZ GOTO0
LBL9
 MR00 HLT x 2 log = 
Édit : 19 pas.
L’astuce est d’utiliser les fonctions statistiques. On pourrait presque gagner 1 pas encore car MR09 est égal à MR00+1 à la fin.

Par contre c’est moins précis car les mémoires n’ont que 10 chiffres significatifs...

34 - 10,23

Édit : il y a peut être un bug ici. Ou pas. Je verrai ce soir :/
Modifié en dernier par Gilles59 le 18 oct. 2020 10:52, modifié 6 fois.
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
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5266
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par bernouilli92 »

C.Ret a écrit : 17 oct. 2020 15:23 Il ne lui faut qu'un quart de seconde pour se rendre compte qu'il ne sait calculer que sur ses 9 doigts ! C'est bien pour un 8 bits !
Un 8 bits qui calcule sur 9 doigts ! C’est effectivement bien :-)
HP, Casio, Sharp, Psion, quelques TI et divers autres
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 »

Marge a écrit : 17 oct. 2020 15:19
Gilles59 a écrit : 17 oct. 2020 14:22
Marge a écrit : 16 oct. 2020 02:05 Bon, pour montrer l'exemple, voici mon premier programme pour Turbo Pascal 5.5 sur le HP 200-LX. On ne rit pas !
Cool le TP5.5. De mémoire il a les surcouches objet etc! Il a combien de ram le 500lx?
Je me demande si la 5.5 ne gérerait pas les réels double précision (remplacer ‘Real ´ par ´double ‘)
Je suis complètement novice en pascal, mais en effet la 5.5 gère la double-précision (voir mon deuxième programme, ou plutôt ma dernière tambouille).
En revanche je ne sais pas mesurer le code 8086 compilé en mémoire vive, si tu as une idée...
Le 200LX possède 2 méga-octets de mémoire vive.
Tu peux compiler en .com ou .exe et voir la taille sur disque. Mais pas d’illusion ce sera un bonne dizaine de ko minimum puisque le programme doit embarquer les bibliothèques de calcul et autres (pas de rom).
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
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

bernouilli92 a écrit : 17 oct. 2020 08:22 Hp48 :

Code : Tout sélectionner

« -1 1
  DO 
    2 * SWAP 1 + SWAP
  UNTIL 
    DUP DUP 1 + ==
  END 
  DROP DUP 2 LOG *
»
Taille : 62,5 octets

Résultat : 39 - 11,74017
Dans un style très semblable, sur HP-28S en utilisant la rémanence de la pile de taille infinie afin de gagner quelques octets :

Code : Tout sélectionner

« CLEAR 1
  WHILE DUP + DUP 1 + OVER ≠
     REPEAT DUP END 
  DROP DEPTH 2 LOG OVER * »
Taille 60,5 octets.

Je trouve aussi 39 et donc 11.74017 chiffres significatifs
Modifié en dernier par C.Ret le 25 oct. 2020 07:24, modifié 1 fois.
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.
Avatar du membre
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3641
Enregistré le : 06 sept. 2011 14:57
Localisation : Normandie

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Hobiecat »

Sur HP-41, en version pas très optimisée. :wink:

Code : Tout sélectionner

LBL PREC
0
STO 00
1
LBL 00
2
*
ENTER
ENTER
1
+
X=Y?
GTO 01
1
ST+ 00
RDN
RDN
GTO 00
LBL 01
RCL 00
2
LOG
*
RCL 00
RTN
Le résultat : 33 - 9.933989858
Avatar du membre
tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 846
Enregistré le : 06 oct. 2012 14:37

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par tyann »

Bonsoir

Voici une version pour Ti 95 :

Code : Tout sélectionner

000 1 STO X +/- STOJ 
006 LBL 00 INC J 2 ST* X RCL X +1= IF> X GTL 00
024 COL 03 MRG J 2 LOG ST* J OLD COL 15 MRG J HLT
038
RUN
43. 12.94428981
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) 35s, 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, E500, El 5120, 9200, 9600
Canon X-07
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

Bravo pour tous vos programmes !

On compte bien sur gege pour nous donner un résultat sur sa Canola, sur TiPoucet avec une Bowmar et sur badaze pour une ch'tite TI !

Désolé tyann, mais merci, nos messages se sont croisés...
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é.
Répondre

Retourner vers « Tous les Pockets »