Pour amateurs de MPO
Modérateur : Politburo
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2930
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Pour amateurs de MPO
Deux challenges, un en RPN pour HP-41, et un en RPL à partir de la HP-48: HHC 2021 Programming Contests - Surprise !
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3419
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: Pour amateurs de MPO
Merci zpalm, j'ai découvert ton post à l'instant alors que j'allais moi aussi faire un petit message pour indiquer le lien.
Pour le moment, je m'abstiens de poster toute informations et j'attendrai demain pour poster mes codes.
La première version RPN est si lente sur HP-41C que j'ai ajouté une fonction PSE pour afficher la très lente progression et un BEEP pour avertir de la fin du calcul. Avec le LBL "PAL initial et le END final, mon code fait 37 bytes.
Mais c'est si lent, que j'ai vite fait une version bien plus rapide qui malheureusement ajoute 20 bytes supplémentaires, mais au moins on peut faire des déterminations bien plus intéressantes en un temps raisonnable:
Je suis actuellement sur le concours RPL avec mon (illicite) HP-28S j'ai un petit code bien sympathique léger et très lent. J'essaye actuellement de tirer parti de notre savoir faire issu des MPO 51 et MPO 75, mais je me heurte actuellement à quelques complications.
Pour le moment, je m'abstiens de poster toute informations et j'attendrai demain pour poster mes codes.
La première version RPN est si lente sur HP-41C que j'ai ajouté une fonction PSE pour afficher la très lente progression et un BEEP pour avertir de la fin du calcul. Avec le LBL "PAL initial et le END final, mon code fait 37 bytes.
Mais c'est si lent, que j'ai vite fait une version bien plus rapide qui malheureusement ajoute 20 bytes supplémentaires, mais au moins on peut faire des déterminations bien plus intéressantes en un temps raisonnable:
Code : Tout sélectionner
Argument Palindrome (37Bytes) (57Bytes)
808 818 0'25"49 0'06"28
2133 2222 4'12"06 0'13"54
2222 2332 >20' 0'14"48
1867429301 1867447681 ? 0'38"78
1867447600 1867447681 ? 0'12"45
1867447700 1867557681 ? 0'40"28
Je suis actuellement sur le concours RPL avec mon (illicite) HP-28S j'ai un petit code bien sympathique léger et très lent. J'essaye actuellement de tirer parti de notre savoir faire issu des MPO 51 et MPO 75, mais je me heurte actuellement à quelques complications.
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.
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2930
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Re: Pour amateurs de MPO
J'ai aussi un code de 37 octets, très lent, mais comme je teste sur émulateur (je suis loin de mes 41) je peux facilement accélérer la vitesse d'exécution, c'est plus confortable.
À la vitesse d'origine, voici mes temps:
Code : Tout sélectionner
Argument Palindrome (37Bytes)
808 818 0'27"
2133 2222 4'02"
2222 2332 4'55"
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3419
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: Pour amateurs de MPO
Ah! Ah! Même temps de résolution et même taille mémoire; encore un fois nos codes doivent se ressembler.
Le mien est presque identique à celui de David Hayden, mais j'utilise la pile ce qui donne un code un peu plus court:
Sans le label imposé, le END final et les deux instructions optionnelles PSE et BEEP, j'arrive à 25 Bytes de code et 1 registre. Soit, comme compte Marge à 32 octets.
Concernant le gagnant du concours RPN, Didier Lachieze utilise de la programmation synthétique avec des modules sophistiqués et profite que les nombres ne doivent pas être plus grands que 7 chiffres pour utiliser le registre Alpha lors de la détermination du palindrome;
Mon code pour la partie RPL est assez mauvais, en plus d'être prévu pour une HP-28S interdite.
Sinon, il utilise le même algorithme que celui proposé par John Keith mais avec trois fois plus de Bytes!
Il faut dire que je n'ai pas sur une HP-28S le moyen de faire des calcul sur les listes et que je n'ai pas pensé à utiliser la pile pour stocker le liste transitoire des éléments de la suite ; j'ai utilisé un ARRAY avec plein de GET et un PUTI : John utilise une astuce très astucieuse à l'aide d'instruction PICK ; chapeau ! Très bonne idée:
Jusqu'à l'instruction SUB incluse, ce code fonctionne parfaitement sur HP-28S, par contre les deux dernières instructions posent problème; le SQ ne fonctionne pas sur les listes et ∑LIST n'existe pas sur une HP-28C/S
C'est du beau MPO, j'ai trop honte de mon code qui suit exactement le même schéma mais bien trop mal foutu
Le mien est presque identique à celui de David Hayden, mais j'utilise la pile ce qui donne un code un peu plus court:
Code : Tout sélectionner
01►LBL "PAL
02► LBL 01 1 + STO 01 PSE 0 RCL 01 // Incrémente n d'une unité et affiche l'avancement
09► LBL 02 STO Z 10 ST* Z ST/ T MOD + X<>Y INT X>0? GTO 02 // Construit le palindrome de n
20► X<> 01 X≠Y? GTO 01 BEEP // Boucle jusqu'à ce que n soit un palindrome
24►END (( 37 Bytes ))
Concernant le gagnant du concours RPN, Didier Lachieze utilise de la programmation synthétique avec des modules sophistiqués et profite que les nombres ne doivent pas être plus grands que 7 chiffres pour utiliser le registre Alpha lors de la détermination du palindrome;
Mon code pour la partie RPL est assez mauvais, en plus d'être prévu pour une HP-28S interdite.
Sinon, il utilise le même algorithme que celui proposé par John Keith mais avec trois fois plus de Bytes!
Il faut dire que je n'ai pas sur une HP-28S le moyen de faire des calcul sur les listes et que je n'ai pas pensé à utiliser la pile pour stocker le liste transitoire des éléments de la suite ; j'ai utilisé un ARRAY avec plein de GET et un PUTI : John utilise une astuce très astucieuse à l'aide d'instruction PICK ; chapeau ! Très bonne idée:
Code : Tout sélectionner
« → a b « 1
2 b FOR k
k OVER - PICK PICK 1 +
NEXT
b →LIST a b SUB SQ ∑LIST
»
»
C'est du beau MPO, j'ai trop honte de mon code qui suit exactement le même schéma mais bien trop mal foutu
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.
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2930
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Re: Pour amateurs de MPO
Pas sur, on devrait sans doute plus utiliser la programmation synthétique dans les MPO