452 résultats trouvés

par dprtl
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.
par dprtl
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 :

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
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 !
par dprtl
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

gege a écrit : Comment avez-vous démontré la formule avec racine de 2 ?
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) :

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)))
par dprtl
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

caloubugs a écrit :Ça tenait tout juste en une ligne sur 71B :

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
Mais avec les nouvelles règles, dur.
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.
par dprtl
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

gege a écrit :Bonjour,
Facile sur la Génération Z, ici la Prime :
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 :

Code : Tout sélectionner

FOR i FROM 3 TO 50000 DO
... ça se gâte.

et avec :

Code : Tout sélectionner

FOR i FROM 500 TO 50000 DO
... ça se gâte encore plus :)
par dprtl
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

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...
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.
par dprtl
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 :

Image

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
par dprtl
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 :

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]))
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 :

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]
Le résultat final s'affiche en quelques secondes :

Image
par dprtl
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...
par dprtl
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 '%' :

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
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 :

Image

Comme ce programme est une boucle infinie, on devra l'interrompre par [control] [shift][alt].
par dprtl
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

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...
La traduction automatique via Google translate est approximative, mais ça peut aider :

https://translate.google.fr/translate?s ... t=&act=url
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
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 :

http://hxc2001.free.fr/floppy_drive_emulator/
par dprtl
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
par dprtl
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.
par dprtl
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...
par dprtl
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 !

Aller à la recherche avancée