<<< S40. LOTTOPVO.83P

>>>

De kans op opvolgende nummers bij een lottotrekking.
Ton van Amsterdam schreef me:
"Wanneer de wekelijkse lottogetallen op de beeldbuis verschijnen, valt het me wel eens op hoe dikwijls er getallenparen bij zijn van opeenvolgende getallen. Nu las ik laatst dat bij het aselect trekken (zonder teruglegging) van zes getallen uit de getallen 1 t/m 49 de kans op ten minste een opvolgend getallenpaar ongeveer (?) 50% is. Het leek me wel leuk om daar een simulatie programmaatje voor te schrijven".
Ton leverde er een programma bij met een hoogst vernuftige methode, om relatief snel te bepalen of er opvolgende nummers in de trekking zitten. De beeldbuis lotto heeft, naar ik me liet vertellen, 41 balletjes waaruit er 6 (zonder teruglegging) worden getrokken. Een serie met precies één opvolgend paar zou bijvoorbeeld kunnen zijn: {24,38,12,40,11,6}. Zet deze rij random in L1. Op volgorde zetten met SortA(L1) levert {6,11,12,24,38,40} op; de verschilrij hiervan is {5,1,12,14,2} waarin precies één 1 staat. Deze verschilrij komt in L2 met de instructie:
DList(L1)®L2. Het vernuft van Tons programma zit 'm nu in de instructie L2=1®L3, waarmee het gemeenschappelijke van L2 en de enen-rij {1,1,1,1,1} wordt bepaald. Zo ontstaat de rij {0,1,0,0,0}, met nullen voor de elementen die niet gelijk aan 1 zijn. De voorwaarde If not(sum(L3))=0 tenslotte, kijkt of er minstens één keer een 1 in L3 voorkomt.
Hieronder staat het kerndeel van het programma. Vooraf ingevoerd zijn het totaal aantal lottoballetjes (M) en het aantal getrokken balletjes (K).
A telt het aantal keren dat er een opvolgend paar aanwezig was.
Lbl 1
Lbl 2
randInt(1,M,K)
®L1
SortA(L1)
DList(L1)®L2
If prod(L2)=0:Goto 2
L2=1®L3
If not(sum(L3)=0):A+1®A
T+1®T
round(A/T,3)
®F
Output(7,1,"TOTAAL:
Output(7,10,T
Output(8,1,"FRACTIE:
Output(8,10," "
Output(8,10,F
If T<N:Goto 1

De formule voor (de kans op) het trekken van k lottoballetjes (met minstens één burenpaar) uit n luidt: