--- title: "Lottery" type: "article" slug: "lottery" url: "http://localhost/article/lottery/" markdown_url: "http://localhost/article/lottery.md" published_at: "2026-11-11T11:07:02+00:00" modified_at: "2026-11-11T11:07:02+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "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." post_tag: - name: "French language" slug: "french-language" taxonomy: "post_tag" url: "http://localhost/tag/french-language/" - name: "QL" slug: "ql" taxonomy: "post_tag" url: "http://localhost/tag/ql/" - name: "Superbasic (programming language)" slug: "superbasic-programming-language" taxonomy: "post_tag" url: "http://localhost/tag/superbasic-programming-language/" - name: "Type-in program" slug: "type-in-program" taxonomy: "post_tag" url: "http://localhost/tag/type-in-program/" model: - name: "Sinclair QL" slug: "sinclair-ql" taxonomy: "model" url: "http://localhost/model/sinclair-ql/" indiv: - name: "Real Gagnon" slug: "real-gagnon" taxonomy: "indiv" url: "http://localhost/indiv/real-gagnon/" genre: - name: "Gambling" slug: "gambling" taxonomy: "genre" url: "http://localhost/type/gambling/" publication: "QL_DOC" publication_r: id: 52925 title: "QL_DOC" type: "periodical" url: "http://localhost/periodical/ql_doc/" authors: "Réal Gagnon" issue: "11" issues_articles: - id: 76726 title: "QL_DOC n11" type: "issue" url: "http://localhost/issue/ql_doc-n11/" pages: "7-9" pubdate: "August-September 1989" archive_link: false volumeissue: "n11" --- # Lottery **In English:** LOTERIE_BAS, a short SuperBASIC program by [Réal Gagnon](http://localhost/indiv/real-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 ```