Lottery

See all articles from QL_DOC n11
Author(s): Réal Gagnon
Publication: QL_DOC
Pub Details: QL_DOC n11 (Issue 11)
Date: August-September 1989
Pages: 7-9

In English: LOTERIE_BAS, a short SuperBASIC program by Réal Gagnon that generates nine random number combinations for Loto-Québec's Lotto 6/49 and Select 42 draws. The article explains its LOTTO, TROUVE_UNE_COMBINE and BUBBLE_SORT procedures, gives Loto-Québec's table of winning odds, and adds a sidebar on the history and finances of lotteries in Québec. The full listing follows.

Printed title: LOTERIE. The article below is in French, as printed in QL_DOC n11 (August-September 1989).


LOTERIE_BAS est petit programme assez simple qui génére des combinaisonsde chiffres au hasard qui peuvent être utilisé pour les loteries6/49 et SELECT 42.

Le coeur du programme est la procédure LOTTO qui demande 2 paramètres. Le premier spécifie le nombre maximum qui peut être accepté. Le deuxième donne le nombre de chiffre à générer. Ainsi pour la 6/49, nous avons LOTTO 49,6 et pour la SELECT 42, nous avons LOTTO 42,6. On pourrait obtenir des combinaisons pour la QUOTIDIENNE 3 chiffres avec LOTTO 9,3.

Les combinaisons sont trouvées avec la procédure TROUVE_UNE_COMBINE qui demande 3 paramètres. Le numéro de la combinaison, le nombre maximum et nombre d’élémentscomposant la combinaison. Chaque élément est obtenu avec la fonction RND. On vérifie que l’élément obtenu est unique dans la combinaison. Une fois tous les éléments trouvés, on les classe par ordre croissant avec la procédure BUBBLE_SORT.

La loterie et la probabilité

Sélection       Chances de          Gros lot
gagnante        gagner              minimum

LOTTO 6/49
 3/6 (10$)      1 sur          56   1 000 000
 4/6            1 sur       1 032
 5/6            1 sur      55 491
 5/6+           1 sur   2 330 636
 6/6            1 sur  13 983 816

SELECT 42
 3/6 (5$)       1 sur          37     500 000
 4/6            1 sur         555
 5/6            1 sur      24 980
 5/6+           1 sur     874 298
 6/6            1 sur   5 245 876

                    Source LOTO-QUEBEC

Jeu d’hasard:Jeu d’argent

Un sondage réalisé en 1988 par LOTO-QUEBEC mentionne que 95% des Québécois ont joué au moins une moins fois à la loterie dans leur vie. En 1987-88, Loto-Québec atteignait le milliard de $ comme chiffre d’affaires. Cela signifie que chaque Québécois dépense $150 par année en billets de loto…

En 1920, le gouvernement Taschereau tente de mettre sur pied une loterie pour financer le système d’éducation du Québec. Duplessis, dans les années 40, tente de financer les hôpitaux de cette façon. Ces deux tentatives aboutissent à des échecs à cause de pressions exercées par le gouvernement fédéral pour qui les loteries étaient immorales. C’est en 1970 que Loto-Québec sera créé. En constatant le succès obtenu au Québec, les autres provinces emboitent le pas dans la création de loteries provinciales et inter-provinciales (comme la 6/49).

Loto-Québec obtient 60% de son chiffre d’affaires à partir de la Lotto 6/49. Sur le milliard de $ de vente annuelle, 380 millions va au gouvernement, 477 millions aux gagnants, 54 millions est distribué aux marchands-détaillants et le reste sert à couvrir les frais d’administration.


LOTERIE_bas par Réal Gagnon Montréal (Québec)

100 REMark LOTERIE_bas .5
110 REMark par Réal Gagnon 1989 pour QL_DOC #11
120 :
130 MODE 4
140 WINDOW 512,256,0,0:PAPER 0:INK 7
150 BORDER 20,56
160 REPeat boucle_principale
170 CLS
180 INK 2:PRINT " Loterie version 0.5",,:INK 7
190 INK 4:PRINT " écrit par Réal Gagnon, Mtl Qc 1989":INK 7
200 PRINT " Sélection des nombres pour quelle loterie?"
210 PRINT " [ 0 ] Quitte"" [ 1 ] Lotto 6/49"" [ 2 ] Sélect 42"
220 DIM numero(9,7),chiffre2$(7)
230 touche=CODE(INKEY$(-1))
240 SELect ON touche
250 =CODE('1'): lotto 49,6
260 =CODE('2'): lotto 42,6
270 =CODE('0'): INK 2: PRINT " OK, à la prochaine..."
280 INK 7: EXIT boucle_principale
290 =REMAINDER :BEEP 1,1
300 END SELect
310 END REPeat boucle_principale
320 :
330 DEFine PROCedure lotto (limite,combien)
340 LOCal i,boucle
350 REPeat boucle
360 PRINT :CSIZE 2,1:PRINT "Combinaison pour ";
370 INK 32
380 IF limite=49
390 PRINT "LOTTO 6/49"
400 ELSE
410 PRINT "SELECT 42"
420 END IF
430 INK 7:CSIZE 0,0:PRINT "** Je pense ";
440 FOR i=1 TO 9:trouve_une_combine i,limite,combien:PRINT ".";
450 PRINT
460 FOR i=1 TO 9:CSIZE 2,0:INK 2:PRINT "#";i;:CSIZE 0,0:PRINT ' ',
470 INK 7:PRINT
480 FOR i=1 TO combien
490 PRINT " ";
500 FOR ii=1 TO 8:PRINT numero(ii,i),
510 PRINT numero(9,i)
520 END FOR i
530 INK 4:PRINT " Encore (o/n) ?":INK 7
540 touche$=INKEY$(-1)
550 IF touche$=='n':EXIT boucle
560 END REPeat boucle
570 END DEFine
580 :
590 DEFine PROCedure trouve_une_combine (laquelle,limite,nbr_chiffre)
600 LOCal tampon$,i,ii
610 chiffre$=FILL$(CHR$(0),7)
620 FOR i=1 TO nbr_chiffre
630 REPeat cherche
640 tampon$=CHR$(INT(RND(1 TO limite)))
650 IF NOT (tampon$ INSTR chiffre$)
660 chiffre$(i)=tampon$: chiffre2$(i)=tampon$:EXIT cherche
670 END IF
680 END REPeat cherche
690 END FOR i
700 bubble_sort nbr_chiffre
710 FOR i=1 TO nbr_chiffre:numero(laquelle,i)=CODE(chiffre2$(i))
720 END DEFine
730 :
740 DEFine PROCedure bubble_sort (nbr_element)
750 LOCal a, b, tampon$, flag
760 FOR a=1 TO nbr_element
770 flag=1
780 FOR b=1 TO nbr_element-a
790 IF CODE(chiffre2$(b))>CODE(chiffre2$(b+1))
800 flag=0
810 tampon$=chiffre2$(b)
820 chiffre2$(b)=chiffre2$(b+1)
830 chiffre2$(b+1)=tampon$
840 END IF
850 END FOR b
860 IF flag THEN RETurn
870 END FOR a
880 END DEFine bubble

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.