Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Modérateur : Politburo
- Marge
- Fonctionne à 14400 bauds
- Messages : 6192
- Enregistré le : 01 oct. 2008 14:39
- Localisation : En bas, tout au fond à gauche.
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Bonsoir, Alain,
J'ai bien raté une marche : je ne connaissais pas la formule, et du coup j'ai découvert (après bien du monde) que 2^64-1 équivaut à la somme de toutes les puissances précédentes de deux.
Du coup mon programme est faux (modifier 64 en 63), je vais en porter le carcan pendant toute une semaine, cela me permettra de méditer cette leçon de modestie. Merci !
(mais je ne m'avoue pas vaincu pour le MPO 64 !)
Edition : ça sent les études de binaire tout ça...
J'ai bien raté une marche : je ne connaissais pas la formule, et du coup j'ai découvert (après bien du monde) que 2^64-1 équivaut à la somme de toutes les puissances précédentes de deux.
Du coup mon programme est faux (modifier 64 en 63), je vais en porter le carcan pendant toute une semaine, cela me permettra de méditer cette leçon de modestie. Merci !
(mais je ne m'avoue pas vaincu pour le MPO 64 !)
Edition : ça sent les études de binaire tout ça...
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é. ♥ ♠
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é. ♥ ♠
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2936
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Marge, dans ton programme je ne vois pas où tu initialises Z pour ton STO + . Z, il manque peut être un CLST au début.
Dans le même style en 11 pas et 15 octets (sans compter le LBL de début):
sinon toujours pour les blancs (on n'est pas à une unité près):
Dans le même style en 11 pas et 15 octets (sans compter le LBL de début):
Code : Tout sélectionner
01 LBL S
02 63 en partant de la première case il faut ajouter le contenu des 63 cases suivantes
03 1 valeur de la première case
04 x² initialise LAST x à 1 pour la somme des cases (on gagne 1 octet par rapport à STO L)
05 LBL 00
06 STO+ X double x (sans modifier LASTx)
07 STO+ L ajoute à la somme des cases précédente
08 DSE Y passe à la case suivante
09 GTO 00 boucle si on n'a pas fini
10 LASTx rappelle la somme des cases
11 RTN
Code : Tout sélectionner
01 LBL S
02 2
03 64
04 y^x
05 RTN
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Bonjour,Marge a écrit :Bonsoir, Alain,
J'ai bien raté une marche : je ne connaissais pas la formule, et du coup j'ai découvert (après bien du monde) que 2^64-1 équivaut à la somme de toutes les puissances précédentes de deux.
Du coup mon programme est faux (modifier 64 en 63), je vais en porter le carcan pendant toute une semaine, cela me permettra de méditer cette leçon de modestie. Merci !
(mais je ne m'avoue pas vaincu pour le MPO 64 !)
Edition : ça sent les études de binaire tout ça...
je dois avouer que lors de mes premiers essais, j'avais fait la somme de 2^x pour x de 1 à 64 (au lieu de 0 à 63)
merci pour ce défi, qui m'a permis d'apprendre (ou réapprendre) à utiliser les suites et ∑ sur ti92 (et classpad, c'est exactement la même syntaxe).
je vais essayer de réfléchir au MPO64 sur une machine plus intéressante que les TI92 ou classpad, qui travaillent nativement sur les entiers jusqu'a environ 600 chiffres...
Mon parcours : TI30 -> F-73 -> PC1261 -> PC1475 -> TI92 -> Voyage 200
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
En même temps, se servir d'une formule, c'est moins sportif. J'aime bien l'idée (laborieuse mais puisque c'est la machine qui calcule ...) de cascades de multiplications s'ajoutant les unes aux autres jusqu'à la limite fixée (pas de formule, pas de puissances). Par exemple le programme demande dans un premier temps le nombre de cases (on ne se limite pas à l'échiquier), le nom de notre céréale favorite (pas forcément du riz) et hop c'est parti pour les multiplications en boucles. J'ai une grosse flemme mais j'aurais bien sorti la TI-57.
Bonne journée
Bonne journée
Dominique
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3422
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Bon, je me lance c'est enfin les vacances.
Mon SHARP PC-1211 joue les noirs :
et affiche après environ 1min17s le résultat suivant :
il faut lire 18 446 744 073 709 551 615.
Mais mettre un espace tous les 3 chiffres nécessite un affichage de plus de 24 caractères, ce que ne permet pas mon équipement.
Les paramètres sont :
- nombre de cases de l'échiquier K = 64
- facteur multiplicatif entre chaque case F=2
- nombre de grains de riz sur la première case C=1
Le résulat est formé par la juxtaposition des trois registres A, B et C
Le registre E contient 10^7 et D l'inverse de E afin de profiter au maximum des multiplications implicites de ce SHARP.
Le registre R est utilisé pour les retenues. En réalité il ne prend que les valeurs 0 ou 1.
Mon SHARP PC-1211 joue les noirs :
Code : Tout sélectionner
1:A=0,B=0,C=1,E=€7,D=1/E,F=2,K=64
2:FOR I=1 TO K:C=FC,R=INT CD,C=C-RE,B=R+FB,R=INT BD,B=B-RE,A=R+FA:NEXT I
3:C=C-1:USING "########":PRINT A;B;C: END
Code : Tout sélectionner
┌────────────────────────┐
│ 184467 4407370 9551615│
└────────────────────────┘
Mais mettre un espace tous les 3 chiffres nécessite un affichage de plus de 24 caractères, ce que ne permet pas mon équipement.
Les paramètres sont :
- nombre de cases de l'échiquier K = 64
- facteur multiplicatif entre chaque case F=2
- nombre de grains de riz sur la première case C=1
Le résulat est formé par la juxtaposition des trois registres A, B et C
Le registre E contient 10^7 et D l'inverse de E afin de profiter au maximum des multiplications implicites de ce SHARP.
Le registre R est utilisé pour les retenues. En réalité il ne prend que les valeurs 0 ou 1.
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.
- gege
- Fonctionne à 14400 bauds
- Messages : 7148
- Enregistré le : 31 janv. 2008 14:24
- Localisation : Banlieue Paârisienne
- Contact :
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Bonjour,
Un peu sur le même principe sur PC1500 :
Ca affiche1844674407 3709551615 en 4 secondes (9 sur le PB-700).
G.E.
Un peu sur le même principe sur PC1500 :
Code : Tout sélectionner
100 A=1:B=0:FOR I=1 TO 64
110 IF A<5000000000 LET A=A+A:B=B+B:GOTO 130
120 A=A-5000000000:A=A+A:B=B+B+1
130 NEXT I:PRINT A;B-1
G.E.
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2936
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Sur HP-16C, pour connaitre la somme des grains jusqu'à une case donnée:
Utilisation: appuyer sur DEC puis entrer le numéro de la case suivi de GSB A.
Par exemple: 4 GSB A donne 15, et 64 GSB A donne 18446744073709551615 en 1 seconde ... le tout en 6 octets, pas trop mal pour une machine de 1982.
Ça marche aussi sur WP-34S en remplaçant WSIZE par WSIZE->X. La touche DEC de la 16C (base 10) est remplacée par f 10 (touche EEX), l'affichage des digits masqués à gauche ou à droite se fait avec f / g x<>y, la sortie du mode entier par f H.d (touche RCL).
Code : Tout sélectionner
001-43.22. A g LBL A
002- 42 44 f WSIZE
003- 42 3 f UNSIGN
004- 43 35 g CLx
005- 42 30 f NOT
006- 43 21 g RTN
Par exemple: 4 GSB A donne 15, et 64 GSB A donne 18446744073709551615 en 1 seconde ... le tout en 6 octets, pas trop mal pour une machine de 1982.
Ça marche aussi sur WP-34S en remplaçant WSIZE par WSIZE->X. La touche DEC de la 16C (base 10) est remplacée par f 10 (touche EEX), l'affichage des digits masqués à gauche ou à droite se fait avec f / g x<>y, la sortie du mode entier par f H.d (touche RCL).
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2936
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Testé sur PC-1262: le PRINT final est erroné, il faut à la place PRINT B;A-1gege a écrit :Bonjour,
Un peu sur le même principe sur PC1500 :Ca affiche1844674407 3709551615 en 4 secondes (9 sur le PB-700).Code : Tout sélectionner
100 A=1:B=0:FOR I=1 TO 64 110 IF A<5000000000 LET A=A+A:B=B+B:GOTO 130 120 A=A-5000000000:A=A+A:B=B+B+1 130 NEXT I:PRINT A;B-1
G.E.
La même chose en 28 pas sur HP-29C:
Code : Tout sélectionner
01 LBL 0
02 STO 0
03 1
04 STO 1
05 0
06 STO 2
07 LBL 1
08 RCL 2
09 STO + 2
10 RCL 1
11 5
12 EEX
13 9
14 x>y
15 GTO 2
16 STO - 1
17 1
18 STO + 2
19 LBL 2
20 RCL 1
21 STO + 1
22 DSZ
23 GTO 1
24 1
25 STO - 1
26 RCL 2
27 RCL 1
28 RTN
64 GSB 0 donne 1844674407 3709551615 en 32 secondes.
- babaorhum
- Fonctionne à 1200 bauds
- Messages : 454
- Enregistré le : 13 janv. 2013 19:44
- Localisation : Marseille-est
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Bonjour,
C.Ret, toujours aussi incroyables tes solutions avec le PC-1211 - Gege, algorithme étonnant, simple et efficace bravo ! - Zpalm, je découvre les fonctions WSISE et UNSIGN sur ma 16C ...
De mon côté, j'étais parti avec mon 75C pour essayer de me rapprocher des années 80 de l'énoncé initial ... et j'ai écris un code bizarre, pas terrible pour un MPO mais qui fonctionne :
J'obtiens bien 18446744073709551615 à l'affichage en un peu moins de 30 secondes ...
Tout ca n'est pas dans l'esprit du MPO mais je crois que je peux calculer jusqu'à 99 cases avec ce code ! (qui trouve pourquoi ?)
J'avais une question complémentaire ... combien pèsent 18446744073709551615 grains de riz ??? (c'est pour me rendre compte)
Merci marge pour ce MPO
C.Ret, toujours aussi incroyables tes solutions avec le PC-1211 - Gege, algorithme étonnant, simple et efficace bravo ! - Zpalm, je découvre les fonctions WSISE et UNSIGN sur ma 16C ...
De mon côté, j'étais parti avec mon 75C pour essayer de me rapprocher des années 80 de l'énoncé initial ... et j'ai écris un code bizarre, pas terrible pour un MPO mais qui fonctionne :
Code : Tout sélectionner
1 REM SISSA POUR HP75C
10 R$="1" @ FOR K=1 TO 64 @ C=0 @ FOR I=LEN(R$) TO 1 STEP -1 @ S=VAL(R$[I,I])*2
20 IF S>=10 THEN S=S+C-10 @ C=1 ELSE S=S+C @ C=0
30 R$[I,I] = STR$(S) @ NEXT I @ IF C=1 THEN R$="1" & R$
40 NEXT K @ I = LEN(R$)
50 S = VAL(R$[I,I])-1 @ IF S<0 THEN R$[I,I]="9" @ I=I-1 @ GOTO 50
60 R$[I,I]=STR$(S) @ DISP R$
Tout ca n'est pas dans l'esprit du MPO mais je crois que je peux calculer jusqu'à 99 cases avec ce code ! (qui trouve pourquoi ?)
J'avais une question complémentaire ... combien pèsent 18446744073709551615 grains de riz ??? (c'est pour me rendre compte)
Merci marge pour ce MPO
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
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
- babaorhum
- Fonctionne à 1200 bauds
- Messages : 454
- Enregistré le : 13 janv. 2013 19:44
- Localisation : Marseille-est
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
En fait j'ai trouvé que 1000 grains de riz pèsent environ 30 g .... (merveilleux internet quand même)
donc donc donc:
Dingue cet échiquier de Sissa ...
donc donc donc:
Code : Tout sélectionner
18446744073709551615
----------------------------------- = poids en tonnes
30000000
et ca fait ... 614891469123.6517 tonnes de riz sauf erreur
la production mondiale est de 480 000 000 tonnes par an (toujours internet ...)
ce qui nous fait environ 1280 ans de production mondiale ...
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
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
- bernouilli92
- Fonctionne à 14400 bauds
- Messages : 5270
- Enregistré le : 21 nov. 2012 13:03
- Localisation : Ile de France
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Si on compte 25 à 50 grains par gramme, on arrive à environ 370-740 milliard de tonnes, soit environ 500 à 1000 fois la production annuelle mondiale de riz.babaorhum a écrit : J'avais une question complémentaire ... combien pèsent 18446744073709551615 grains de riz ??? (c'est pour me rendre compte)
Merci marge pour ce MPO
HP, Casio, Sharp, Psion, quelques TI et divers autres
- babaorhum
- Fonctionne à 1200 bauds
- Messages : 454
- Enregistré le : 13 janv. 2013 19:44
- Localisation : Marseille-est
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
yes bernouilli, ca colle bien, merci !
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
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
- bernouilli92
- Fonctionne à 14400 bauds
- Messages : 5270
- Enregistré le : 21 nov. 2012 13:03
- Localisation : Ile de France
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
En tout cas, cela fait plus que beaucoup. Je pense même que Sissa n'avait pas tout à fait idée de combien cela faisait. Car sinon il n'aurait pas fait une récompense impossible à satisfaire.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Bonjour
Je vous propose une extension: sachant que dans 2 litres
d'eau on peut cuire 500g de riz, combien faudra-t-il à Sissa
Non je rigole
Je vous propose une extension: sachant que dans 2 litres
d'eau on peut cuire 500g de riz, combien faudra-t-il à Sissa
Non je rigole
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
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
Re: Misez p'tit, Optimisez ! n°63-64 : L'échiquier de Sissa
Pour l'anecdote, en utilisant la même formule que donnée au dessus pour la TI92 ( ∑ ...), on obtient (mode exact) sur la HP49 :
e^(64*LN(2))-1
EXP2POW donne alors 2^64-1
EVAL donne alors tous les chiffres du nombre
Le CAS retarde l'évaluation numérique et il à mon avis raison car par exemple 2^64-1 est plus pratique à manipuler qu'un nombre exact de 20 chiffres
e^(64*LN(2))-1
EXP2POW donne alors 2^64-1
EVAL donne alors tous les chiffres du nombre
Le CAS retarde l'évaluation numérique et il à mon avis raison car par exemple 2^64-1 est plus pratique à manipuler qu'un nombre exact de 20 chiffres
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