programme de tirage pour l'euromillion. A optimiser...

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
Alexandre
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 747
Inscription : 26 janv. 2007 22:14
Localisation : RP
Contact :

programme de tirage pour l'euromillion. A optimiser...

Message par Alexandre » 09 nov. 2011 18:01

Alors grosse tanche que je suis en programmation, j'ai réussi tant bien que mal à faire un petit programme pour me sortir les 5 numéros de l'euromillion et ses 2 étoiles. Mais y'a certainement moyen de l'optimiser. Je l'ai écrit pour un sharp PC E500.
Je vais donc jouer 3 grilles qu'il m'a sorti, et je vous dis Lundi combien j'ai gagné! 8)

Pour le tableau de variable j'ai volontairement dimensionné pour 6 numéros (0,1,2,3,4,5), parce qu'avec mon cerveau je comprend mieux quand le 2ème numéro s'appelle N(2) plutôt que N(1)

Code : Tout sélectionner

10 CLS: WAIT 50: PRINT "TIRAGE EUROMILLION"
15 BEEP 1,222,50:  BEEP 1,141,120:  BEEP 1,222,50:  BEEP 1,141,320
20 N=0:DIM N(5):DIM E(2)

30 FOR I = 1TO 5
40 RANDOMIZE
50 N=RND50
60 IF I=1 THEN N(1)=N: NEXT I
70 IF I=2 AND N<>N(1) THEN N(2)=N : NEXT I
80 IF I=3 AND N<>N(1) AND N<>N(2)THEN N(3)=N : NEXT I
90 IF I=4 AND N<>N(1) AND N<>N(2)AND N<>N(3)THEN N(4)=N : NEXT I
100 IF I=5 AND N<>N(1) AND N<>N(2)AND N<>N(3)AND N<>N(4)THEN N(5)=N:GOTO 200
110 I=I-1: NEXT I

200 FOR X =1TO 2
210 RANDOMIZE
220 E=RND9
230 IF X=1 THEN E(1)=E : NEXT X
240 IFX=2 AND E<>E(1) THEN E(2)=E: GOTO 300
250 X=X-1: NEXT X


300 PRINT "Joue ces numéros: ", N(1), N(2), N(3), N(4) N(5)
310 PRINT "Et joue ces étoiles: ", E(1), E(2)
Sharp PC1211/1212, CE122, PC1245/47/46s/51/60/61/62/70, CE125, PC1360/50, CE140P, PC1402, CE129P, PC1500/A, CE150, PC E500, EL1195. Canon X-07. Ti 57. Newton 110. HP-12C. Psion3a

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par badaze » 09 nov. 2011 19:39

Il y a une grosse mais très grosse erreur. Il n'y a pas 9 étoiles mais 11!!!
;)
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
Alexandre
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 747
Inscription : 26 janv. 2007 22:14
Localisation : RP
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par Alexandre » 09 nov. 2011 19:46

badaze a écrit :Il y a une grosse mais très grosse erreur. Il n'y a pas 9 étoiles mais 11!!!
;)
Mais non!!! y'a 9 numéros et 2 étoiles à cocher!
Sharp PC1211/1212, CE122, PC1245/47/46s/51/60/61/62/70, CE125, PC1360/50, CE140P, PC1402, CE129P, PC1500/A, CE150, PC E500, EL1195. Canon X-07. Ti 57. Newton 110. HP-12C. Psion3a

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par badaze » 09 nov. 2011 19:49

Alexandre a écrit :
badaze a écrit :Il y a une grosse mais très grosse erreur. Il n'y a pas 9 étoiles mais 11!!!
;)
Mais non!!! y'a 9 numéros et 2 étoiles à cocher!
3.3.2. Comment remplir un bulletin ?
3.3.2.1. Le bulletin comporte 5 couples de grilles. Chaque couple est composé d’une grille supérieure appelée « grille des numéros » et d’une grille inférieure appelée « grille des étoiles ». Chaque grille des numéros comporte 50 cases numérotées de 1 à 50. Chaque grille des étoiles comporte 11 cases représentées par des étoiles référencées par les nombres 1 à 11.
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: programme de tirage pour l'euromillion. A optimiser...

Message par C.Ret » 09 nov. 2011 20:00

Et oui, il y a plusieurs type de grilles !

Image



Et celle-ci :
Image



Laquelle est d'actualité ?
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par badaze » 09 nov. 2011 20:10

C.Ret a écrit :Et oui, il y a plusieurs type de grilles !

Image



Et celle-ci :
Image



Laquelle est d'actualité ?
La dernière.
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par charognard » 09 nov. 2011 21:06

Des esprits cartésiens comme vous jouent au loto ???
je n'y crois pas ;)

Tipoucet
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3767
Inscription : 10 janv. 2009 14:47

Re: programme de tirage pour l'euromillion. A optimiser...

Message par Tipoucet » 09 nov. 2011 21:48

charognard a écrit :Des esprits cartésiens comme vous jouent au loto ???
je n'y crois pas ;)
Moi je n'y joue pas j'aurais trop peur de gagner et de pas pouvoir dépenser mes gains : carte bleue ne pouvant dépasser le petit plafond d'achats mensuels, retraits d'espèces soumis au petit plafond de retrait hebdo, chèques plus acceptés par mes commerçants du coin ... comment je fais pour dépenser tous ces millions ... :(
Dominique

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par jvernet » 09 nov. 2011 22:15

Il y a un debut a tout! Quelques conseils: éviter a tout prix de mettre plusieurs NEXT I: ta boucle ne doit en comporter qu'un, c'est plus clean.

On ne sort JAMAIS d'une boucle avec un GOTO, comme en ligne 100! On ne touche JAMAIS au compteur de boucle avec un truc du genre I=I-1 (ok, on le fait en C).

Bon, c'est comme ça qu'on apprenait le BASIC au siècle dernier...

Le RANDOMIZE ne qu'une fois, en debut de programme.

Apres, il faut chercher a optimiser. Tu peux trouver un algo plus simple,qui te permet de savoir si un numero a deja été tiré en une seule ligne de un seul IF!

Plus compliqué: trier les résultats dans l'ordre croissant.

Aller Hop, au boulot ;)
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
Alexandre
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 747
Inscription : 26 janv. 2007 22:14
Localisation : RP
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par Alexandre » 09 nov. 2011 22:30

jvernet a écrit :Il y a un debut a tout! Quelques conseils: éviter a tout prix de mettre plusieurs NEXT I: ta boucle ne doit en comporter qu'un, c'est plus clean.

On ne sort JAMAIS d'une boucle avec un GOTO, comme en ligne 100! On ne touche JAMAIS au compteur de boucle avec un truc du genre I=I-1 (ok, on le fait en C).

Bon, c'est comme ça qu'on apprenait le BASIC au siècle dernier...

Le RANDOMIZE ne qu'une fois, en debut de programme.

Apres, il faut chercher a optimiser. Tu peux trouver un algo plus simple,qui te permet de savoir si un numero a deja été tiré en une seule ligne de un seul IF!

Plus compliqué: trier les résultats dans l'ordre croissant.

Aller Hop, au boulot ;)
Ah mince... J'ai l'impression qu'il y a du boulot là...
Sharp PC1211/1212, CE122, PC1245/47/46s/51/60/61/62/70, CE125, PC1360/50, CE140P, PC1402, CE129P, PC1500/A, CE150, PC E500, EL1195. Canon X-07. Ti 57. Newton 110. HP-12C. Psion3a

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: programme de tirage pour l'euromillion. A optimiser...

Message par C.Ret » 09 nov. 2011 22:52

jvernet a écrit :Bon, c'est comme ça qu'on apprenait le BASIC au siècle dernier...
C'est vrai ça, je m'en souviens bien. Mais c'était au précèdent millénaire ! :)
jvernet a écrit :Apres, il faut chercher a optimiser.
Pour optimiser, il faut miser petit.
C'est certainement pour cela que je ne joue pas aux Loto. Trop pingre.
jvernet a écrit :Tu peux trouver un algo plus simple, qui te permet de savoir si un numéro a déjà été tiré en une seule ligne de un seul IF! Plus compliqué: trier les résultats dans l'ordre croissant.
On peut même en y réfléchissant et en organisant bien la méthode, se passer de tout test et en même temps tirer les numéros dans l'ordre !
La clef est qu’en tirant les numéros dans l’ordre, plus besoin de faire de test, car le nouveau numéro est, par construction, plus grand que le précédant (et donc tous ceux déjà tirés).

Reste plus qu’a construire la méthode de tirage pseudo-aléatoire ad’hoc !
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par charognard » 09 nov. 2011 23:03

C.Ret a écrit :
On peut même en y réfléchissant et en organisant bien la méthode, se passer de tout test et en même temps tirer les numéros dans l'ordre !
La clef est qu’en tirant les numéros dans l’ordre, plus besoin de faire de test, car le nouveau numéro est, par construction, plus grand que le précédant (et donc tous ceux déjà tirés).
j'ai bien peur que en faisant cela tu dirigeras un peu le hazard

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par jvernet » 09 nov. 2011 23:07

C.Ret a écrit : C'est vrai ça, je m'en souviens bien. Mais c'était au précèdent millénaire ! :)
Oui, carrément!
On peut même en y réfléchissant et en organisant bien la méthode, se passer de tout test et en même temps tirer les numéros dans l'ordre !
La clef est qu’en tirant les numéros dans l’ordre, plus besoin de faire de test, car le nouveau numéro est, par construction, plus grand que le précédant (et donc tous ceux déjà tirés).

Reste plus qu’a construire la méthode de tirage pseudo-aléatoire ad’hoc !
Donc tu commence par tirer le plus petit. Qui peut etre 50 si le hasard est respecté?

Ça serait vraiment tres tres pseudo aleatoire, ça!

Au mieux, j'ai une méthode qui affiche trié sans avoir de faire de tri du tout, mais le tirage directement dans l'ordre du plus petit au plus grand, je vois pas.
Dernière édition par jvernet le 09 nov. 2011 23:12, édité 4 fois.
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: programme de tirage pour l'euromillion. A optimiser...

Message par jvernet » 09 nov. 2011 23:09

Alexandre a écrit : Ah mince... J'ai l'impression qu'il y a du boulot là...
On a tous -enfin, les vieux comme moi- commencé comme cela! C'était le but du BASIC.
:lol:
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: programme de tirage pour l'euromillion. A optimiser...

Message par C.Ret » 09 nov. 2011 23:23

jvernet a écrit :Donc tu commence par tirer le plus petit.
Oui. Mais on peut aussi commencer par le plus grand. La méthode est parfaitement symétrique.
jvernet a écrit :Qui peut etre 50 si le hasard est respecté?
Je ne sais pas concernant le hasard, ni comment le respecter. D'ailleurs il ne respecte rien, si c'est vraiment aléatoire.
Par contre le premier tirage ne peut pas être la valeur 50, sinon l'on ne respecte pas l'une des contraintes qu'impose notre méthode.

En fait, comme l'on souhaite tirer dans l'ordre 5 nombres distincts pris au hasard, le premier nombre doit être tiré au hasard entre 1 et 46 (tous deux inclus). Sinon notre méthode n'a aucune chance d'aboutir !
charognard a écrit :j'ai bien peur que en faisant cela tu dirigeras un peu le hazard
Très bien vu.

Si l'on n'y prend pas garde, notre méthode pour tirer dans l'ordre 5 nombres distincts a de grande chance de ne pas suivre une distribution statistique normale (ou autre).

Mais la question qu'il faut se poser est :
" Est-ce que la méthode qui consiste à recommencer les 5 tirages tant que l'on a pas dans l'ordre nos cinq nombres distincts suit elle aussi une distribution statistique normale (ou autre ?).
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Répondre

Revenir vers « Tous les Pockets »