433 résultats trouvés

par caloubugs
10 août 2015 23:12
Forum : Tous les Pockets
Sujet : La Gazette n°6 est ENFIN (RE- !!!) publiée !
Réponses : 164
Vues : 75300

Re: Gazette n°6 : Planification

Marge a écrit :Bonsoir,

La Gazette n°6, c'est dans 6 semaines !

J'ai déjà reçu quelques articles, n'hésitez pas à envoyer les autres...

Et si vous manquez de lumière, sachez que 2015 est l'année de la lumière ! si si, ça aide.

archilog9919@gmail.com
Ah, merci pour le rappel !
Rien de tel pour se remettre à l'ouvrage... :slime:
par caloubugs
08 août 2015 14:30
Forum : Tous les Pockets
Sujet : Programmons un peu : la martingale de St-Petersbourg
Réponses : 3
Vues : 1939

Re: Programmons un peu : la martingale de St-Petersbourg

Marge a écrit :C'était .
Merci pour ton lien Marge !

J'ai fait un programme en Python et fait tourner sur des séries de 10 000 simulations avec cette fois-ci deux limites :
- un nombre max de tours de roulette (j'ai des situations de retour à 0 après plusieurs dizaines de milliers de tours, pas réaliste)
- une limite d'arrêt (comme dans ton programme) de gains.

Par exemple si on vient avec 50 euros et qu'on s'arrête à 70 ou après 100 tours (ça fait déjà du temps passé au casino), tout cela avec une mise de 1 euro (et un plafond à 40) : on arrive à 28% des cas où on perd de l'argent et 72% où on gagne. Le gain moyen in fine est de 3 euros. Donc résultat des courses : des soirées où on gagne bien peu.

C'est positif malgré tout, mais c'est du gagne très petit...
par caloubugs
08 août 2015 09:01
Forum : Tous les Pockets
Sujet : MPO n°66 - Convertisseur en chiffres romains
Réponses : 33
Vues : 21831

Re: MPO n°66 - Convertisseur en chiffres romains

Joli !

Y a plus qu'à se servir une MDCLXIV après une telle optimisation :mrgreen:
par caloubugs
04 août 2015 20:48
Forum : Tous les Pockets
Sujet : Programmons un peu : la martingale de St-Petersbourg
Réponses : 3
Vues : 1939

Programmons un peu : la martingale de St-Petersbourg

Tombé là-dessus un peu par hasard, c'est la simulation de la mise en place d'une routine à la roulette anglaise au casino.

En plus, ça marche pas mal sur mes premières simulations (on peut gagner un peu de sous), si on sait s'arrêter.

Voilà le topo : on mise sur un élément du couple impair/pair, rouge/noir ou passe/manque, qui permet l'alternative

suivante à partir d'une mise M de départ :
- Si le choix sort, on gagne 2 fois la mise (on récupère en fait sa mise et on en gagne une autre).
- Sinon on pert sa mise.

La martingale est alors la suivante :
- si on a perdu avec une mise M, on mise alors avec une valeur 2 M.
- si on a gagné, on repart avec la mise minimale autorisée.

Du coup, si on gagne après une perte : on récupère 4M après avoir misé M (et perdu) puis 2M (et gagné). Résultat final, on a gagné M.
Si on perd à nouveau, on remet 4M en mise et ainsi de suite.

Et après n-1 pertes et un gain au coup n, on a misé (1+2+....+2^(n-1))M=((2^n)-1)M et gagné (2^n)M. On a donc toujours notre gain de M.

L'espérance mathématique est positive dans le cas d'un tirage équilibré en probabilité (et si on a beaucoup de fonds au départ car après 20 coups on en est à plus de 1 million de mise initiale) : ce qui n'est pas le cas au casino puisqu'il y a 37 cases sur la roulette (18 paires, 18 impaires et le 0 qui fait gagner la banque à tous les coups). La chance de gain à chaque coup est donc de 18/37. Autre point : il y a un plafond de mise autorisé, et si on l'atteint en ayant perdu, on perd sa mise et on repart de la mise minimale (ouille...).

Dans les simulations, systématiquement, on perd tout, mais en ayant eu quasi systématiquement un pic au-dessus de l'apport initial à un moment donné.

Le premier objectif ici est donc à partir d'une "fortune" de départ (l'apport disponible), d'un plafond autorisé, d'une mise minimale de simuler les différents coups et d'obtenir ensuite le nombre de coups pour tout perdre (ce qui arrivera normalement), la fortune maximale qui aura été atteinte.

Le second est pourquoi pas, de faire plusieurs simulations en chaine pour calculer moyennes et minima/maxima atteints sur le nombre de tours et fortunes possédées.

Proposition pour Casio Z-1GR:

Le sous programme de simulation du premier objectif :

Code : Tout sélectionner

210 IF fm<f THEN fm=f  //calcul de la fortune maximale
220 m=ms:f=f-m         //mise initiale (ms est saisie par l'utilisateur)
230 IF f<0 THEN 260    //sommes-nous ruiné ?
240 t=t+1:r=INT(RAN#*37):IF r MOD 2 THEN f=f+m*2:GOTO210  //Calcul du tirage et situation si on gagne
250 m=m*2:IF m>f or m>p THEN 220 ELSE f=f-m:GOTO240  //si on perd, on double la mise, sauf si on ne peut plus
260 PRINT "n:";i;TIMER/10;"t:";t;"f:";fm:RETURN //petit affichage du résultat (n° de la simulation, le temps écoulé, le nombre de coups et la fortune maxi atteinte).
Le programme principal

Code : Tout sélectionner

10 INPUT"Fortune";f1:INPUT"Plafond";p:INPUT"mise";ms:INPUT"tours:";n:TIMER=0:t1=0:t2=0:m2=0:c=0:mf=0:mg=0:g=0
//prise des paramètres et initialisation des variables
20 FOR i=1 TO n:t=0:f=f1:fm=0:GOSUB220:m2=m2+t:c=c+t*t:g=g+fm:IF t>t1 THEN t1=t
// on lance une simulation (il y en a n) et on cumule les résultats (m2 somme des coups, g somme des fortunes max)
21 IF t2=0 THEN t2=t ELSE IF t<t2 THEN t2=t
// t1 c'est le nombre max de coups, t2 le nombre min.
22 IF mf<fm THEN mf=fm //fortune max
23 IF mg=0 THEN mg=fm ELSE IF fm<mg THEN mg=fm //fortune min (c'est le minimum des fortunes max des différentes simul)
25 NEXT i
30 m1=m2/n:PRINT "Cps moy";INT(m1);"EcartT";INT(SQR(c/n-m1*m1)):PRINT"Cps>";t1;"Cps<";t2:
   PRINT TIMER/10;"s f>";mf;"f<";mg;"f";INT(g/n)
// affichage des résultats : Coups moyens pour perdre son apport et Ecart Type
//                           Nombre max de coups et nombre min
//                           Tps écoulé et Fortune max, min et moyenne.
40 END
Exemple :
Fortune 50 (on part petit), Plafond 40, mise 1 (j'ai un casino qui prend une mise mini de 1€), tours 50 (on va donc faire 50 simulations complètes) et zou, on regarde défiler les résultats de simulation (bon, ça va pas super vite, y'en a pour une bonne dizaine de minutes).

Petite approximation de l'espérance mathématique pendant que ça tourne : on a (19/37)^6 chances de perdre 63€ (perte moyenne donc de 1,16€) et 1-(19/37)^6 chances de gagner 1 € (donc un gain moyen de 0,98 €). D'où une perte globale de 0,18€ par tour. Ce qui normalement doit nous ramener les 50€ de mise initiale à 0 en environ 280 coups.

Résultats : Coups moyens joués : 360 (écart type de 503, il y a des valeurs extrêmes très éloignées)
Nombre max de coups 2990 (!) min de 33 (il y a une une simulation avec 2990 lancers de roulette !)
Temps écoulé : 877,2 s (près de 15 mn), fortune max atteinte 423 €, min 24 € (il y a eu des simultations avec des pertes immédiates), moyenne de 109 € (donc on peut bien gagner de l'argent...)

Bon amusement pour ceux qui veulent approfondir ces réalisations de simulation.

Par contre, je ne suis pas responsable de pertes réelles au casino !
par caloubugs
04 août 2015 18:42
Forum : Tous les Pockets
Sujet : Test d'habileté à la frappe d'additions
Réponses : 16
Vues : 8622

Re: Test d'habileté à la frappe d'additions

Et celui là, à mon avis imbattable sur la vitesse de frappe.

Image

Par contre pour l'efficacité :mrgreen: (taper 8 chiffres pour un caractère...)
par caloubugs
03 août 2015 16:25
Forum : Tous les Pockets
Sujet : MPO n°66 - Convertisseur en chiffres romains
Réponses : 33
Vues : 21831

Re: MPO n°66 - Convertisseur en chiffres romains

Une version en C plus courte...
J'ai l'immense plaisir de me replonger dans ce langage (ça m'aura rajeuni de 25 ans tiens), et la Z-1Gr a quelques subtilités qui rendent le programme un peu lourd sur la partie initialisation des données (on ne peut pas initialiser directement un tableau, il faut le faire élément par élément, contraire aux règles ANSI C).

Code : Tout sélectionner

main(){
char *rm[14],res[25],i,j,k;int n,dc[13];
rm[0]="M";rm[1]="CM";rm[2]="D";
rm[3]="CD";rm[4]="C";rm[5]="XC";
rm[6]="L";rm[7]="XL";rm[8]="X";
rm[9]="IX";rm[10]="V";rm[11]="IV";rm[12]="I";
dc[0]=1e3;dc[1]=900;dc[2]=500;dc[3]=400;
dc[4]=100;dc[5]=90;dc[6]=50;dc[7]=40;
dc[8]=10;dc[9]=9;dc[10]=5;dc[11]=4;dc[12]=1;
printf ("n:");scanf ("%d",&n);
for(i=0;i<13;i++){
 j=(int) n/dc[i];n=n%dc[i];
 for(k=0;k<j;k++)strcat(res,rm[i]);}
printf("%s",res);}
Dommage, le coeur du pgm est vraiment court du coup.
S'il y a des experts pour améliorer l'initialisation, je suis preneur...

En tout cas, j'étais à mille lieues de trouver cette idée... Merci pour le tuyau... :wink:
par caloubugs
03 août 2015 11:37
Forum : Tous les Pockets
Sujet : MPO n°66 - Convertisseur en chiffres romains
Réponses : 33
Vues : 21831

Re: MPO n°66 - Convertisseur en chiffres romains

Une première version en C dans une casio Z-1Gr (sans les listes... :roll: )

Code : Tout sélectionner

char *sch(m,u,c,d)
char m,u,c,d;
{
char sch[5];char i,j=0;
if(m%5==4)
 {
 sch[0]=u;
 if(m==4)sch[1]=c;
  else sch[1]=d;
 sch[2]=0;
 }
else
 {
 if(m>4)
  {
  sch[0]=c;m-=5;j=1;
  }
 for(i=0;i<m;i++)sch[i+j]=u;
 sch[j+m]=0;
 }
return(sch);
}

main()
{
int n;char m,i,res[25];
clrscr();printf("n:");
scanf("%d",&n);res[0]=0;
m=(int)n/1e3;n=n%1000;
if(m<10)
 {
 for(i=0;i<m;i++)
  strcat(res,"M");
 m=(int)n/100;n=n%100;
 strcat(res,sch(m,67,68,77));
 m=(int)n/10;n=n%10;
 strcat(res,sch(m,88,76,67));
 strcat(res,sch(n,73,86,88));
 printf("%s",res);
 }
}
Je vais essayer de m'inspirer du code de Babaorhum... C'est quand même long ici.
Le C c'est pas génial sur les manipulations de caractères...
par caloubugs
01 août 2015 22:28
Forum : Tous les Pockets
Sujet : MPO n°66 - Convertisseur en chiffres romains
Réponses : 33
Vues : 21831

Re: MPO n°66 - Convertisseur en chiffres romains

Sympa ton pgm Babaorhum ! Pas de listes de mon côté :

Code : Tout sélectionner

10 INPUT "N:";N
20 M=INT(N/1000):N=N-M*1000:IF M>9 THEN 10
30 W$=RPT$("M",M)
40 M=INT(N/100):N=N-M*100:X$="CDCM":GOSUB 80
50 M=INT(N/10):N=N-N*10:X$="XLXC":GOSUB 80
60 M=INT(N):X$="IVIX":GOSUB 80
70 PRINT W$:PAUSE:END
80 IF M=9 THEN W$=W$&SEG$(X$,3,2):RETURN
90 IF M=4 THEN W$=W$&SEG$(X$,1,2):RETURN
100 IF M>4 THEN W$=W$&SEG$(X$,2,1):M=M-5
110 W$=W$&RPT$(SEG$(X$,1,1),M):RETURN
357 octets utilisés.

Je bénéficie d'une fonction de la ti74 (RPT$) qui permet facilement de copier plusieurs instances d'une chaine.
A voir sur d'autres bécanes...
par caloubugs
31 juil. 2015 10:13
Forum : Tous les Pockets
Sujet : MPO n°66 - Convertisseur en chiffres romains
Réponses : 33
Vues : 21831

MPO n°66 - Convertisseur en chiffres romains

Je suis tombé sur cette page : p26-MS
Tirée du n°8 de Micro-Systèmes (nov 1979 quand même), et en voyant le programme proposé, je me suis bien dit qu'il y avait matière à optimisation. :slime:

Et que ça pourrait faire un MPO qui combine manipulation de nombres et de caractères.

D'autant plus que là, je trouve la solution plutôt tortueuse... 8O

J'ai fait un programme sur TI74 que je mettrai en ligne un peu plus tard.

Pour les règles, il faut suivre celles de la page mise en ligne qui respectent l'orthodoxie en la matière : on traite les chiffres un à un sans faire de raccourci.
Par exemple : 999 s'écrit CMXCIX et non IM qui est une simplification alternative qui n'a pas toujours été appliquée, et plutôt tardivement (voir aussi Wikipedia).

Et pour les plus téméraires, pourquoi pas faire un programme qui fasse la traduction inverse (pas sûr que l'on arrive alors dans du petit programme).

Bon amusement !

Sommaire des MPO
par caloubugs
20 juil. 2015 17:37
Forum : Tous les Pockets
Sujet : Challenge Estival : l'Heure Première
Réponses : 11
Vues : 6614

Re: Challenge Estival : l'Heure Première

Mouaip, c'est du niveau défi Turing ou Euler, malheureux...

Ca va nous faire chauffer les neurones...
par caloubugs
01 juil. 2015 21:08
Forum : Tous les Pockets
Sujet : Misez p'tit, optimisez n°62: Les boules
Réponses : 17
Vues : 11412

Re: Misez p'tit, optimisez n°62: Les boules

bernouilli92 a écrit : Mais au final, tu as raison. Les résultats ont l'air d'être équiprobables. J'ai lancé 10000 fois la fonction avec 99 itérations -> le premier nombre autant de chances d'être un 1 ou un 2 ou ... ou un 100.
Je confirme, j'ai fait le test sur une HP39GII en surchargeant le programme graphique statistique à une variable...
J'obtiens ça sur 10000 séries de 1000 tirages (fait sur l'émulateur, ça va quand même plus vite !!! Environ 70 fois plus vite sur mon ordi, sinon près d'une heure 30 pour la HP39...) :
Image
En répartissant les résultats dans des déciles (de 1 à 100, de 101 à 200, etc) histoire de voir s'il y a une tendance qui se dégage... Du coup, c'est bien équiprobable : moyenne de 504 boules blanches et un écart type de 286 (proche de l'idéal de 1/√12*1000).

avec le programme suivant (j'ai honte, il n'est pas optimisé, mais le langage s'y prête moyen).

Code : Tout sélectionner

START()
BEGIN {}►D1;{}►D2;5►H1Type; END;
VIEWS "Tirage",LISTWAIT()
BEGIN
INPUT(N);
MAKELIST(0,X,1,10,1)►D1;MAKELIST(0,X,1,4,1)►D2;
FOR K FROM 1 TO N DO
  1►A;1►B;
  FOR L FROM 1 TO 1000 DO
    IF RANDOM<A/(A+B) THEN A+1►A ELSE B+1►B END; 
    END;
  D2(1)+A►D2(1);  D2(2)+(A−1)²►D2(2);
  IF A=1 THEN 2►A END;  FLOOR((A−2)/100)+1►A;
  D1(A)+1►D1(A);
  END;
D2(1)/N►D2(3);√(D2(2)/N-D2(3)²)►D2(4);
0►Xmin;10►Xmax;0►Ymin;MAX(D1)►Ymax;
STARTVIEW(1,1);
END;
par caloubugs
27 mai 2015 21:42
Forum : Tous les Pockets
Sujet : HP 41C en Miniature
Réponses : 41
Vues : 23557

Re: HP 41C en Miniature

pir2 a écrit : testé le CRIC
Was ist ein CRIC ? (question du béotien que je suis...)
par caloubugs
27 mai 2015 20:16
Forum : Tous les Pockets
Sujet : Le règne de la PEUR...
Réponses : 6
Vues : 4366

Re: Le règne de la PEUR...

Aïe, c'est le cauchemar.

Prenez-vous des précautions particulières pour le stockage de vos ancêtres ?
Et cela peut-il nous éviter ce genre de surprise ? (c'est du genre perte d'étanchéité au niveau de l'écran non ? Mais là je dis probablement une grosse c****)
par caloubugs
27 mai 2015 20:11
Forum : Tous les Pockets
Sujet : HP 41C en Miniature
Réponses : 41
Vues : 23557

Re: HP 41C en Miniature

Marge a écrit :Pourquoi la touche bleue est-elle marquée d'un << a >> ? c'est le mode alpha après pression sur << f >> ?
Bien vu, c'est vrai qu'il fallait caser les 4 touches du haut de la 41 (39 touches au total) sur la 15 (39 touches aussi, ouf).
Du coup, c'est une 415...

@pir2 : ça donne quoi l'utilisation après un peu plus de temps passé dessus ?
J'aurais bien envie d'un comparo 15/41/DM41... Avant de succomber...
par caloubugs
27 mai 2015 20:01
Forum : Tous les Pockets
Sujet : Quelle Machine à la place de mon Sharp PC1500 ?
Réponses : 51
Vues : 38962

Re: Quelle Machine à la place de mon Sharp PC1500 ?

dprtl a écrit : La prochaine version, encore en développement, avec des caractéristiques très tentantes, s'appellera la Pyra :

http://www.dragonbox-pyra.com/

Sur le forum dédié, ils en estiment le prix à moins de 500 €... Objectif ambitieux !
Mazette, mais c'est la boite aux miracles ce machin !
Connaissais pas la Pandora, ça fait bien envie.

Y'a d'autres projets comme cela ? (j'ai vu que http://www.librecalc.com/ était mort).
On pourrait se faire un fil (pas dentaire) de suivi des projets de ce genre, une sorte de veille techno (pour vieux techno :mrgreen: )

Aller à la recherche avancée