452 résultats trouvés
- 12 mars 2017 10:16
- Forum : Tous les Pockets
- Sujet : Misez p'tit, Optimisez - N°77 - En route pour Les Spectacles
- Réponses : 15
- Vues : 14581
Re: Misez p'tit, Optimisez - N°77 - En route pour Les Specta
Dans leur cursus, de nombreux étudiants en informatique ont implémenté un jour le fameux algorithme de Dijkstra. Il reste très utilisé aujourd'hui dans les protocoles de routage du type IS-IS ou OSPF.
- 27 déc. 2016 16:02
- Forum : Tous les Pockets
- Sujet : [MPO n° 76] Période de quotient
- Réponses : 5
- Vues : 5629
Re: [MPO n° 76] Période de quotient
Voici ma première version, assez limitée, pour Casio PB-1000 :
A défaut d'être universelle, elle fonctionnera au moins sur les divisions par 7. En réalité, je ne recherche que la première ré-occurence du premier chiffre après la virgule (variable C). Son intérêt principal, c'est que c'est la première proposition à être publiée !
Code : Tout sélectionner
10 INPUT"N";N
20 INPUT"D";D
30 Q=N/D:PRINT Q
40 I=0:C=0
50 FOR E=0 TO 20:F=10^(9-E):D=INT(Q/F)*F
60 IF D<=0 THEN 120
70 K=INT(D/F):IF D>=1 THEN PRINT RIGHT$(STR$(K),1);:GOTO 110
80 IF C=0 THEN C=K:PRINT".";:PRINT RIGHT$(STR$(K),1);:GOTO 110
90 IF C=K THEN END
100 PRINT RIGHT$(STR$(K),1);
110 Q=Q-D
120 NEXT E
- 07 déc. 2016 21:41
- Forum : Tous les Pockets
- Sujet : Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
- Réponses : 32
- Vues : 20361
Re: Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
Je crois que personne ne l'a démontrée mathématiquement ! L'intuition est venue probablement en observant la courbe graphique ? Le premier a avoir présenté une formule avec racine dans le MPO 51 était C.Ret, avec une première approximation (traduite de son code Basic) :gege a écrit : Comment avez-vous démontré la formule avec racine de 2 ?
U(i) = int(1.46061*sqrt(i))
Ensuite, il y a eu plusieurs autres tentatives pour ajuster cette formule, et j'avais fait l'observation suivante (non démontrée) :
Soit f(x) = (x^2 + x + 4)/2
Lorsque x prend des valeurs entières, f(0), f(1), f(2), f(3), etc. correspondent aux "sauts" de la suite U(i).
Pour arriver, après quelques simplifications formelles approximatives, à la formule suivante (vérifiée par calcul exhaustif) :
U(i) = round(sqrt(2*i-3))
Qui donne, un peu étonnamment, exactement les mêmes résultats que celle de Zpalm :
U(i) = round(sqrt(2*(i-1)))
- 06 déc. 2016 23:16
- Forum : Tous les Pockets
- Sujet : Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
- Réponses : 32
- Vues : 20361
Re: Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
En fait, le HP-71b n'est pas concerné par la règle bonus, qui ne s'applique qu'à la génération Z. Et c'est bel et bien la longueur de ligne maximale pour ce Basic, à un caractère près ! Par contre, comme je n'ai qu'un seul module de 4 Ko, le programme plante lorsque I atteint la valeur 101.caloubugs a écrit :Ça tenait tout juste en une ligne sur 71B :Mais avec les nouvelles règles, dur.Code : Tout sélectionner
10 DIM B(500) @ B(2)=1 @ S=2 @ FOR I=3 TO 500 @ B(I)=B(I-B(I-1))+1 @ S=S+B(I) @ NEXT I @ DISP S
- 06 déc. 2016 19:26
- Forum : Tous les Pockets
- Sujet : Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
- Réponses : 32
- Vues : 20361
Re: Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
Oui, trop facile ! Du coup, comme il n'y avait pas encore beaucoup de réponses, j'ai revu mon énoncé, en corsant un peu le problème pour la génération Z ; après avoir testé ton programme avec :gege a écrit :Bonjour,
Facile sur la Génération Z, ici la Prime :
Code : Tout sélectionner
FOR i FROM 3 TO 50000 DO
et avec :
Code : Tout sélectionner
FOR i FROM 500 TO 50000 DO
- 06 déc. 2016 19:21
- Forum : Tous les Pockets
- Sujet : Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
- Réponses : 32
- Vues : 20361
Re: Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
En effet, dans mes générations de calculettes, j'ai fusionné la génération Bof avec la Babyboom, que je fais commencer dorénavant à 1974. C'est bien la date de la sortie de la HP 65, première programmable au monde (au lieu de 1975 initialement), et première calculette dans l'espace.Marge a écrit : Quant au débat : il n'y avait pas la Bof génération aprês celle du babyboom ? juste une réplique sans réel intérêt si l'on considère 74 comme une date primordiale pour l'apparition des bébés d'ordinateurs...
- 05 déc. 2016 22:23
- Forum : Tous les Pockets
- Sujet : Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
- Réponses : 32
- Vues : 20361
Misez p'tit Optimisez n°75 : l'aire sous les Batrachions
Je vous propose en ce lundi soir un nouveau problème, qui va faire appel à votre capacité à compiler quelques MPO précédents. En 2014, dans la gazette 2 une suite numérique de type "batrachion" était définie de la façon suivante :
U(n) = U(n - U(n-1)) + 1
avec U(1) = 1 ou 0
et U(2) = 1
La TI-89 permet par exemple d'en tracer une courbe représentative ci-dessous :
Sous le curseur graphique de la TI, on a par exemple U(254) = 22.
L'idée de ce MPO m'est venue en lisant quelques passages de la biographie de John von Neumann. Ici, le but sera de calculer une approximation numérique, ou bien la valeur exacte, de l'aire sous la courbe dans l'intervalle de 2 à 500. Si besoin, n'hésitez pas à vous inspirer du MPO 3 pour implémenter la méthode de Simpson. Cependant, je ne prétends pas que c'est la plus adaptée à ce cas un peu particulier. Ceux qui n'aiment pas trop programmer, pourront également comparer les performances des calculettes qui embarquent une fonction de calcul intégral en ROM.
Je vous propose pour le fun un classement des machines, avec ou sans programmation, en 4 catégories sociologiques décrites ci-dessous. Il s'agit de catégories définies selon mon estimation très personnelle, donc à débattre :
1) machines des Baby-boomers, apparues entre 1974 et 1984 (exemples : HP-65, Casio PB-700, HP-15C, Sharp PC-1500)
2) machines de la génération X, sorties entre 1985 et 1993 (exemples : Casio PB-1000, HP-48SX, Sharp PC-E500)
3) machines de la génération Y, entre 1994 et 2010 (exemples : Casio Graph 100, HP-50G, TI-89)
4) machines de la génération Z, entre 2011 et aujourd'hui (exemples : HP Prime, TI‑83 Premium CE, WP-34S)
La solution la plus élégante, la plus rapide, la plus précise, la plus compacte (c'est un MPO), tournant sur la machine la plus économe, sortira vainqueure dans chacune de ces catégories... si la victoire a la moindre importance !
Pour rendre le défi plus intéressant, les machines de la génération Z devront être capables de calculer l'aire sous la courbe dans l'intervalle de 500 à 50000.
-->Sommaire des MPO
U(n) = U(n - U(n-1)) + 1
avec U(1) = 1 ou 0
et U(2) = 1
La TI-89 permet par exemple d'en tracer une courbe représentative ci-dessous :
Sous le curseur graphique de la TI, on a par exemple U(254) = 22.
L'idée de ce MPO m'est venue en lisant quelques passages de la biographie de John von Neumann. Ici, le but sera de calculer une approximation numérique, ou bien la valeur exacte, de l'aire sous la courbe dans l'intervalle de 2 à 500. Si besoin, n'hésitez pas à vous inspirer du MPO 3 pour implémenter la méthode de Simpson. Cependant, je ne prétends pas que c'est la plus adaptée à ce cas un peu particulier. Ceux qui n'aiment pas trop programmer, pourront également comparer les performances des calculettes qui embarquent une fonction de calcul intégral en ROM.
Je vous propose pour le fun un classement des machines, avec ou sans programmation, en 4 catégories sociologiques décrites ci-dessous. Il s'agit de catégories définies selon mon estimation très personnelle, donc à débattre :
1) machines des Baby-boomers, apparues entre 1974 et 1984 (exemples : HP-65, Casio PB-700, HP-15C, Sharp PC-1500)
2) machines de la génération X, sorties entre 1985 et 1993 (exemples : Casio PB-1000, HP-48SX, Sharp PC-E500)
3) machines de la génération Y, entre 1994 et 2010 (exemples : Casio Graph 100, HP-50G, TI-89)
4) machines de la génération Z, entre 2011 et aujourd'hui (exemples : HP Prime, TI‑83 Premium CE, WP-34S)
La solution la plus élégante, la plus rapide, la plus précise, la plus compacte (c'est un MPO), tournant sur la machine la plus économe, sortira vainqueure dans chacune de ces catégories... si la victoire a la moindre importance !
Pour rendre le défi plus intéressant, les machines de la génération Z devront être capables de calculer l'aire sous la courbe dans l'intervalle de 500 à 50000.
-->Sommaire des MPO
- 16 nov. 2016 15:56
- Forum : Tous les Pockets
- Sujet : Misez p'tit, Optimisez - N°74
- Réponses : 10
- Vues : 8945
Re: Misez p'tit, Optimisez - N°74
La recherche des nombres taxicab constitue un problème très difficile, voire infaisable pour un pocket un peu ancien !
En toute rigueur, voici la définition exacte du nième nombre taxicab, noté Ta(n) : c'est le plus petit nombre qui peut être exprimé comme une somme de deux cubes positifs non nuls de n façons distinctes à l'ordre des opérandes près. Donc, par exemple, 1729 est un nombre taxicab, mais pas 4104.
Cela dit, cette définition ne change pas grand chose à l'abominable complexité logarithmique du problème.
Sur mes vieilles machines, comme je n'arrivais pas à trouver Ta(3), qui a pourtant été découvert en 1957 (sur quel ordinateur ?!), je suis parti sur un programme Python naïf en 20 lignes et 388 octets pour smartphone. C'est ma meilleure calculette en 2016 :
Après l'appel à la fonction "sort" interne de Python, la liste L contient toutes les combinaisons des sommes des cubes triées. Ceci n'est pas affiché par le programme ci-dessus :
Le résultat final s'affiche en quelques secondes :
En toute rigueur, voici la définition exacte du nième nombre taxicab, noté Ta(n) : c'est le plus petit nombre qui peut être exprimé comme une somme de deux cubes positifs non nuls de n façons distinctes à l'ordre des opérandes près. Donc, par exemple, 1729 est un nombre taxicab, mais pas 4104.
Cela dit, cette définition ne change pas grand chose à l'abominable complexité logarithmique du problème.
Sur mes vieilles machines, comme je n'arrivais pas à trouver Ta(3), qui a pourtant été découvert en 1957 (sur quel ordinateur ?!), je suis parti sur un programme Python naïf en 20 lignes et 388 octets pour smartphone. C'est ma meilleure calculette en 2016 :
Code : Tout sélectionner
#!/usr/bin/python3
print("Calcul en cours...")
L=[]
for A in range(1,1000):
for B in range(1,1000):
if A<=B:
L.append([A*A*A+B*B*B,A,B])
L.sort()
print("Resultat :")
N=1
C=0
for I in range(1,len(L)):
if L[I][0]-L[I-1][0]==0:
C+=1
else:
C=0
if C==N:
N+=1
for J in range(I-N+1,I+1):
print("Ta({}) = {} = {}^3+{}^3".format(N,L[J][0],L[J][1],L[J][2]))
Code : Tout sélectionner
[2, 1, 1]
[9, 1, 2]
[16, 2, 2]
[28, 1, 3]
[35, 2, 3]
[54, 3, 3]
[65, 1, 4]
[72, 2, 4]
[91, 3, 4]
[126, 1, 5]
[128, 4, 4]
[133, 2, 5]
[152, 3, 5]
...
[1991014991, 998, 999]
[1994005998, 999, 999]
- 07 nov. 2016 11:01
- Forum : Tous les Pockets
- Sujet : Et un hors-série de la gazette ?
- Réponses : 48
- Vues : 25526
Re: Et un hors-série de la gazette ?
Si on part sur un premier numéro HS dédié au Sharp PC 1500, je veux bien faire partie des rédacteurs ! Il y a énormément de matière à compiler, et même de l'actualité. Le seul risque serait de la laisser tomber dans l'oubli...
- 04 nov. 2016 22:04
- Forum : Tous les Pockets
- Sujet : Misez p'tit, Optimisez - N°39 (Nombres de Keith)
- Réponses : 73
- Vues : 55164
Re: Misez p'tit, Optimisez - N°39 (Nombres de Keith)
On parlait du GFA Basic dans un autre fil de discussion sur Silicium, alors je ne résiste pas à l'envie de porter mon programme précédent pour Casio FX-850P. Malheureusement, ce n'est pas un GFA Punch (8 lignes de trop !), mais la lisibilité reste correcte, malgré les variables de type entier, suffixées avec le symbole '%' :
Les temps de calcul sont honorables pour un Basic interprété, sur un 68000 à 8 Mhz des années 80. On est entre 4 et 5 fois plus lent que le Basic de la HP Prime... pourtant beaucoup plus puissante, en théorie :
Comme ce programme est une boucle infinie, on devra l'interrompre par [control] [shift][alt].
Code : Tout sélectionner
DIM n%(10)
DO
INPUT "N?",n1%
PRINT TIME$;" ";
DO
l%=INT(LOG10(n1%))+1
m%=n1%
s%=0
FOR i%=l% TO 1 STEP -1
n%(i%)=m% MOD 10
ADD s%,n%(i%)
DIV m%,10
NEXT i%
REPEAT
INC i%
IF i%>l%
i%=1
ENDIF
m%=SHL(s%,1)
SUB m%,n%(i%)
n%(i%)=s%
s%=m%
UNTIL s%>=n1%
EXIT IF s%=n1%
INC n1%
LOOP
PRINT s%;" est un Keith. ";TIME$
LOOP
Comme ce programme est une boucle infinie, on devra l'interrompre par [control] [shift][alt].
- 30 sept. 2016 22:49
- Forum : Présentation
- Sujet : Un drole de p'tit gars
- Réponses : 13
- Vues : 13336
Re: Un drole de p'tit gars
La traduction automatique via Google translate est approximative, mais ça peut aider :Galaxie38 a écrit :dprtl
Merci pour le lien, mais c'est en anglais, et a part les mots clé du basic( Thomson ), je n'y comprend rien...
https://translate.google.fr/translate?s ... t=&act=url
Si tu t'intéresses aux logiciels de création graphique, à la musique, ou la à programmation, le disque dur c'est l'idéal sur Atari. Mais, de nombreux jeux ne peuvent pas se lancer à partir d'un disque dur ; à moins de disposer de versions spécialement déplombées et patchées. D'où l'intérêt des "ëmulateurs hadware" de lecteur de disquette. Voici un modèle moins cher ici :Galaxie38 a écrit : Ce que je voudrais, c'est non seulement faire les sauvegardes des disquettes ST( peu importe le temps que j'y mettrais ), mais aussi avoir un disque dur sur le 1040 pour ne pas avoir à changer de disquettes à chaque fois, tout en gardant le lecteur de disquettes
http://hxc2001.free.fr/floppy_drive_emulator/
- 28 sept. 2016 22:14
- Forum : Tous les Pockets
- Sujet : Cela faisait des années que ...
- Réponses : 10
- Vues : 7891
Re: Cela faisait des années que ...
L'article ci-dessous qui date d'hier, sur l'histoire de Casio, ne parle pas de Classpad, et affirme que "la calculatrice arrive (enfin) à l'école en 1992". L'auteur évoque en fait la calculette quatre opérations à l'école primaire japonaise. Et en France ?
https://www.digischool.fr/divertissemen ... -33269.php
https://www.digischool.fr/divertissemen ... -33269.php
- 28 sept. 2016 21:02
- Forum : Présentation
- Sujet : Un drole de p'tit gars
- Réponses : 13
- Vues : 13336
Re: Un drole de p'tit gars
Bienvenue sur ce forum de passionnés !
Parmi les interfaces modernes d'émulation de disque dur Atari ST ACSI et disquette, la CosmosEx me semble être l'une des plus complètes. Elle peut s'utiliser montée en interne dans le ST à la place du lecteur de disquettes, ou bien en externe, avec un câble floppy DIN14 et un câble ASCI :
http://joo.kie.sk/cosmosex
L'ensemble coûte 115 €, tout de même, pour la version avec Raspberry Pi.
Parmi les interfaces modernes d'émulation de disque dur Atari ST ACSI et disquette, la CosmosEx me semble être l'une des plus complètes. Elle peut s'utiliser montée en interne dans le ST à la place du lecteur de disquettes, ou bien en externe, avec un câble floppy DIN14 et un câble ASCI :
http://joo.kie.sk/cosmosex
L'ensemble coûte 115 €, tout de même, pour la version avec Raspberry Pi.
- 19 sept. 2016 23:37
- Forum : Atari ST et compagnie
- Sujet : Atari ultimate
- Réponses : 16
- Vues : 26087
Re: atari utimate
Ayé ! J'ai mon exemplaire de 150 Go également. Le gros 7z est assez long à décompresser.
Folders: 10911
Files: 182975
Size: 193497085418
Compressed: 150070632031
Puis, on découvre une foultitude de zip, arj, lzh, arc, zoo, iso et compagnie, qu'il faut également décortiquer pour pouvoir les consulter, la plupart du temps. Bref, il y en a pour un bon moment à tout explorer...
Folders: 10911
Files: 182975
Size: 193497085418
Compressed: 150070632031
Puis, on découvre une foultitude de zip, arj, lzh, arc, zoo, iso et compagnie, qu'il faut également décortiquer pour pouvoir les consulter, la plupart du temps. Bref, il y en a pour un bon moment à tout explorer...
- 04 août 2016 17:19
- Forum : Tous les Pockets
- Sujet : Un "bug" de la fonction puissance sur certaines Casio
- Réponses : 63
- Vues : 46419
Re: Un "bug" de la fonction puissance sur certaines Casio
Je calcule 3^3^2 = 19683 sur mon Sharp PC-1500A en version européenne de 1984. On connaissait déjà la supériorité de HP sur Casio, maintenant c'est Sharp qui en fait encore la démonstration 30 ans plus tard !