Trekronor

Tidningen Hufvudstadsbladet här i Helsingfors har en liten problemhörna med namnet Tankenöten. Bloggaren brukar besvara nötterna nu och då. Den senaste nöten var relativt enkel att besvara, men den gav en liten möjlighet att skriva en programsnutt. Frågan var kort och gott:

Anta att du singlar tre slantar på en gång. Hur många av de möjliga utfallen är sådana att man får (exakt) två klave.

Eftersom bloggaren noterat att läsare i Sverige ibland figurerar i bloggen, döptes problemet till ”Tre kronor” (jag vet, fysikerhumor!).

Vi beräknar alltså sannolikheten för exakt två kronor i en slantsingling med tre slantar. Problemet i sig är inte svårt. Utfallsrummet (R – krona och L – klave) är:

RRR, RLR, RRL, RLL

LLL, LRL, LLR, LRR

Vi har alltså 8 möjliga utfall och exakt två kronor i tre av dem (kunde förklara namnet på inlägget??)

Sannolikheten för exakt 2 kronor bland de tre slantarna borde alltså vara 3/8 eller ca 0,375.

Passade på at simulera detta med ett litet program. Måste också skryta en aning. För första gången under min över 30-åriga lärarkarriär, lyckades programmeringen utan ett enda felmeddelande på vägen. Rent otroligt!

Programmet hittas i Box-verktyget. Får fritt laddas ner och modifieras av den som vill!

Här är en programlistning med enkla förklaringar:

Define trekronor()=                                          Programmet namnges
Prgm

{0,0,0,0}→kronor                                              En räknelista skapas för utfallen 0, 1, 2 eller 3 kr

Request ”Antal kast”,n                                     Antalet singlingar definieras

For i,1,n :{0,0,0}→kast                                  Loop för kasten

For j,1,3                                                       De tre slantarna singlas i en loop

If rand()>0.5 Then :                                 Ett slumptal i int. 0-1 ges. Större än 0,5: Kr

kast[j]:=1                                                Eventuell krona noteras

EndIf                                                          Slut på kontrollen

sum(kast)→s                                              Antalet kronor noteras

EndFor                                                           Slut på slantsinglingsloopen

kronor[s+1]+1→kronor[s+1]                   Räknelistan uppdateras

EndFor                                                             Slut på simuleringen

EndPrgm

 

När programmet körts, visas resultatet genom kommandot kronor.  Kommandot kan givetvis skrivas in i programmet. Också de relativa antalet ”exakt 2 kronor” kan skrivas in! Prova!

 

Annonser