SE Lång matematik matematik hösten 2012 – uppgift 8

8.

En professor ska enligt arbetsschemat hålla en föreläsning om dagen under veckans fem arbetsdagar. Men professorn är mycket upptagen och hinner inte hålla alla föreläsningar. Varje dag är sannolikheten för att han ska hålla sin föreläsning 80 %.
a) Hur stor är sannolikheten för att professorn ska hinna hålla alla sina föreläsningar under en vecka?
b) Hur stor är sannolikheten för att han ska missa bara en av de fem föreläsningarna?
c) Bestäm väntevärdet av antalet föreläsningar som professorn håller under en vecka.

Vi använder följande beteckningar:

P(”professorn hinner hålla sin dagliga föreläsning”) = p

P(”professorn hinner inte hålla sin dagliga föreläsning”) = q

Då gäller: p = 0,8 och q = 1-p = 0,2

a)

A = ”Professorn hinner hålla samtliga 5 föreläsningar”

P(A)={{p}^{5}}={{0,8}^{5}}\approx 0,3277

Svar: 32,8 %                                                                                             2 p

Kontroll tar vi på Anteckningar-skärmen:

U8L_1

b)

B = ”professorn missar (exakt) en föreläsning av 5”

Nu är det fråga om en binomialsannolikhet med n = 5 och k = 4:

P(B)=\left( \begin{array}{l}n\\k\end{array} \right){{p}^{6}}{{q}^{n-k}}=\left( \begin{array}{l}5\\4\end{array} \right)\cdot {{0,8}^{4}}\cdot {{0,2}^{5-4}}\approx 0,4096        1 p

Svar: 41,0 %                                                                                                                   1 p

Nu finns det olika kontrollmöjligheter. Vi undersöker några:

U8L_2

Sedan undersöker vi vad menu-tangenten har att erbjuda. Genom att navigera via statistikberäkningar och välja binomialfördelningen, kan vi beräkna:

U8L_4

Kommandot ger sannolikheterna för 0, 1, 2 osv missade föreläsningar av 5.

c)

För att beräkna vätevärdet, måste vi känna till sannolikheterna för de enskilda antalet missade timmar: (Observera att dessa sannolikheter redan är beräknade ovan)

2012-12-11 06-34-59 +00001

Väntevärdet för antalet hållna föreläsningar under veckans fem dagar blir då:

E(X)=\sum\limits_{i}{{{p}_{i}}{{X}_{i}}=0,00032\cdot 0+0,0064\cdot 1+...+0,32768\cdot 5=4}

Svar: Väntevärdet är 4                                                             1 p

Kontroll! Man kan räkna ”lång vägen”, men det finns andra kontrollmöjligheter, t.ex:

U8L_5

 

 

Annonser

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!

 

Några experiment med normalfördelningen

I det här inslaget ska vi se på ett exempel på hur en normalfördelning kan behandlas. Traditionellt har vi i finländska studentexamina varit tvungna att använda numeriska tabeller i dessa exempel. Här är ett alternativ, om inte annat så för kontrollens skull.

Vi gör detta som ett exempel:

Anta att kaffe i ett rosteri förpackas i påsar med massan 1 kg. Ett stickprov visar att påsarnas innehål är normalfördelat med massan 1002 g och normalfördelningen 9 g. Hur många påsar i en sats på 5000 stycken, kan vi anta vara ”för lätta”, dvs ha en massa på mindre än 1 kg?

Sarta en räknarskärm och tryck på menu-tangenten. Följ sedan bilderna:

Ca 41 % av påsarna ser ut att vara för lätta. Antalet säckar:

Ca 2100 påsar kan förväntas vara för lätta.

Kan man förklara det här på ett mera visuellt sätt!

Vi experimenterar vidare: (med en ny fil med namnet NF.tns som lagras i boxen till vänster).

Vi inleder med att starta en Anteckningar-skärm:

Resultatet är numeriskt och en aning inexakt, men idén torde vara klar. Det går bra att mata in andra värden för medeltal och standardavvikelser på Anteckningar-skärmen och sedan anpassa Graf-skärmen på nytt.

Ett hasardspel med tärning + en simulation av spelet

Bilderna förklarar själva problemet. Filen finns i BOX-verktyget, programarkivet. Namn: Väntevärde.tns.

Sedan simulerar vi spelet med ett  program

Vi tar oss en titt på programmet:

Define väntevärde()=
Prgm

Local vv,n,i,re                            Variablerna definiers som variabla

0→vv                                            Variabeln vv visar det förväntade värdet på vinst/förlust

Request ”Antal kast”,n            Antal kast fastställs

For i,1,n                                       En loop initieras

re:=int(6*rand())+1                  Tärningen ”kastas”. Resultat = re

vv-1.5→vv                                    Spelinsatsen betalas

If mod(re,2)=1 Then                Udda/jämnt kollas. Här udda. Obs hur mod-kommandot används!

vv-2→vv                                       Spelförlust på 2 euro

EndIf                                            Slut på kollen udda

If mod(re,2)=0 Then               Udda/jämnt kollas. Här jämnt.

vv+re→vv : EndIf                      Spelvinst utbetalas.

EndFor                                        Slut på kolen jämnt

Disp vv                                        Resultatet vv visas

EndPrgm                                    Programslut

Födelsedagsproblemet

Vi ska nu behandla ett standardproblem inom sannolikhetsläran. Frågan lyder:

Hur många personer kan komma in i ett rum, innan sannolikheten för att åtminstone två av dem har gemensam födelsedag blir större än 0,5?

Vi ska utnyttja ett mycket behändigt kommando här.

seq(formel, variabel, start, slut, (steg))

bildar en talföljd (sequence) som genereras av formeln. Vi ser på ett exempel:

Kommandot genererar en talföljd i listform av kvadraterna på talen 1 till 10.

Man kan också göra beräkningar med talen i talföljden. Summan av alla tal från 1 till 100 kan beräknas så här:

Nu till vårt problem.

Komplementet till att åtminstone två personer i en grupp har samma födelsedag, är att alla har olika födelsedagar. Vi beräknar alltså för n personer sannolikheten:

P(”åtminstone 2 gemensamma födelsedagar av n”) = 1 – P(”alla n har unika födelsdagar”)

Vi antar att året har 365 dagar.

Då första personen anländer i rummet, har han en unik födelsedag med sannolikheten365/365 = 1. Andra som kommer in har en unik födelsedag med sannolikheten 364/365 osv. Hur kunde man få fram antalet som kommer in för att villkoret i uppgiften ska gälla. Här är ett par möjligheter:

Beräkningen visar att 5 personer har unika födelsedagar med sannolikheten 0,97. Man kan fortsätta att prova sig fram genom att kopiera (gå upp till uttrycket med kursorn och tryck på Enter) skärmens sista rad och ändra 5 till andra värden. Här är några försök:

Då den 23 personen träder in i rummet, förvandlas sannolikheten för att det finns åtminstone två gemensamma födelsedagar, till större än 50 %.

Här är ett förslag på det:

De stora talens lag

Nu ska vi undersöka ett fenomen inom sannolikhetsläran. Vid ett stort antal slumpförsök, kommer det totala resultatet att konvergera mot ett väntevärde. Om man t.ex. singlar slant tillräckligt många gånger, kommer antalet kronor att närma sig 50 % av totala antalet resultat.

Filen som här presenteras finns i BOX-rutan i arkivet Sanolikheter.

Vi simulerar detta med ett litet program. Först en förklaring på Anteckningar-skärmen. Sedan startar vi en räknarskärm. På den aktiveras ett program.

Program och funktioner matas in på en skärm med detta utseende. Med hjälp av MENU-tangenten hittar man de kommandon och kontrollstrukturer som behövs.

Programmeringsspråket är ”Texas basic”, ett enkelt programmeringsspråk utan finesser. Jag tar mig friheten att kommentera strukturen.

Define storatal()=          programmet namnges
Prgm                                  programstart

Local n,l,r                        variablerna n,l och r definieras som lokala (blir inte kvar efter körningen)

1→n

0→l

0→r                                  variablerna tilldelas startvärden (n-varvräknare, l – antal klave, r – antal krona)

{n}→ant

{0}→forh                       två listor påbörjas, ena för singlingsvarvet, andra för förhållandet mellan kronor och antalet kast

For x,1,100                    en loop på 100 kast påbörjas

augment(ant,{x})→ant        listan med antalen kast utökas kast för kast i loopen

If rand()>0.5 Then      en slumptalsgenerator används. Resultaten varierar mellan 0 och 1. Större än 0,5 – krona. 

1+r→r                            Kontroll:  om krona -antalet r ökar ett steg

Else                                  om klave

1+l→l                             antalet klave ökar ett steg

EndIf                             slut på kontrollen

augment(forh,{approx(((r)/(r+l)))})→forh          forhållandelistan uppdateras

EndFor                          slut på räkneloopen

Disp approx(((r)/(r+l)))    visa förhållandet mellan kronor och totala antalet

EndPrgm                      programslut

Tredje skärmen är en visar statistiken. Relativa antalet kronor från 0 till 100 kast visas.

Skärmen är delad. Nedanför grafen finns en liten räknarsärm. Mata in kommandot storatal() och tryck på ENTER.

Varje tryck på ENTER ger sedan en ny körning med graf.