15 svar
483 visningar
Korra behöver inte mer hjälp
Korra 3798
Postad: 10 nov 2017 15:33 Redigerad: 10 nov 2017 15:55

2 tärningslekar - Sannolikhet

Hej, jag ska presentera 2 st tärningslekar och jag undrar vilken av dom som är mest sannolik att få vinst i.   

Lek1 
En 100 sidig tärning kastas, om tärningen landar på något värde över 55 så vinner du, men får du mindre så förlorar du.
>55  VINST55 FÖRLUST   
Sannolikheten att vinna i denna leken är 45100 45%

Lek2 
En lek mellan två personer där båda får kasta den 100sidiga tärningen hur många gånger somhelst men om summan av alla kast överstiger 100 så förlorar man.  Målet är att komma så nära 100 som möjligt, om första personen slår 99 på första kastet så kommer den personen troligen inte att slå igen. Och då ska person 2 få högre än 99 men inte högre än 100.  Får man 100 så måste person nr2 också få 100 och då ger det oavgjort och dom måste börja om.

Mitt försök att lösa detta
Vi ska ta reda på om lek nr2 har en större sannolikhet än 45% för vinst. Jag tänker på något i stilen med x100·y100100  men får inte riktigt till det. Kan ha helt fel också. Är det någon som förstår och kan ta reda på detta? Det kanske inte är så lätt misstänker jag. 

Dr. G 9482
Postad: 10 nov 2017 15:58

Spontant hade jag valt lek 2. Är man den som börjar slå? Jag ser inte att man har någon fördel av att slå först eller inte slå först, så sannolikheten för vinst bör vara nära 50 % (men jag har inte räknat på det).

Korra 3798
Postad: 10 nov 2017 16:04 Redigerad: 10 nov 2017 16:05
Dr. G skrev :

Spontant hade jag valt lek 2. Är man den som börjar slå? Jag ser inte att man har någon fördel av att slå först eller inte slå först, så sannolikheten för vinst bör vara nära 50 % (men jag har inte räknat på det).

Ja, du får slå först. Jag vet inte riktigt...  Jo för om du slår först så kan det ju gå illa för dig, om du slår 110 på två kast säger vi, då behöver person nr 2 bara slå en gång så vinner han/hon..  Alltså så spelar det roll vem som slår först

Dr. G 9482
Postad: 10 nov 2017 16:14

Slår man vartannat kast? Om man stannar på t.ex 78 och motståndaren slår 80, får man slå igen då? 

Korra 3798
Postad: 10 nov 2017 16:15
Dr. G skrev :

Slår man vartannat kast? Om man stannar på t.ex 78 och motståndaren slår 80, får man slå igen då? 

Nej, du slår först tills du är nöjd med ditt resultat. Sedan när du säger stop så får du inte slå längre och då är det nästa persons tur att slå. 

Korra 3798
Postad: 10 nov 2017 16:16 Redigerad: 10 nov 2017 16:23

Man borde kunna skriva ett enkelt programm för detta i Java och sedan köra lekarna 10,000,000 gånger var för att sedan på ett ungefär utesluta vilken man vinner mest på. Men det bör gå att räkna ut också ? 

Yngve 40280 – Livehjälpare
Postad: 10 nov 2017 16:24 Redigerad: 10 nov 2017 16:25
MattePapput skrev :

Man borde kunna skriva ett enkelt programm för detta i Java och sedan köra leken 10,000,000 gånger var för att sedan på ett ungefär utesluta vilken man vinner mest av. Men det bör gå att räkna ut också ? 

Eftersom lek 2 innehåller ett beslutsmoment (stanna eller slå igen) så måste du bygga in det som en strategi i programmet.

Då kan du genom att köra programmet med olika strategier hitta den bästa strategin.

Den kan du sedan låta tävla mot lek 1.

Korra 3798
Postad: 10 nov 2017 16:26 Redigerad: 10 nov 2017 16:28
Yngve skrev :

Eftersom lek 2 innehåller ett beslutsmoment (stanna eller slå igen) så måste du bygga in det som en strategi i programmet.

Då kan du genom att köra programmet med olika strategier hitta den bästa strategin.

Den kan du sedan låta tävla mot lek 1.

Åh, så länge har jag inte programmerat.  :)  Ska dock fråga om min lärare orkar hjälpa mig med det. 

Dr. G 9482
Postad: 10 nov 2017 20:03 Redigerad: 10 nov 2017 20:07

Med dessa spelregler så ändrar jag mig nog. 

Man bör i alla fall inte fortsätta efter 50. Har man 50 är det 50/50 att man säkert förlorar eller får ett bättre läge.

Frågan är om man ska fortsätta efter t.ex 45. Enklast blir nog att fulkoda ihop en simulering. 

Stokastisk 3597 – Fd. Medlem
Postad: 10 nov 2017 22:08 Redigerad: 10 nov 2017 22:11

Säg att sannolikheten att spelare nr 2 vinner är p när båda spelar optimalt.

Låt nu bij b_{ij} vara sannolikheten att spelare nr 2 vinner då spelare nr 1 fick i poäng och spelare nr 2 har j poäng.
Vi har då att det måste gälla att
Om j>i j > i så är bij=1 b_{ij} = 1 , detta eftersom spelare 2 bara beslutar att sluta då den har mer poäng än spelare nr 1.
Om j=i j = i så är bij=max{p,100-i100} b_{ij} = max\lbrace p, \frac{100 - i}{100}\rbrace , detta eftersom spelare nr 2 tjänar på att stanna och börja om, om det inte är större sannolikhet att den vinner i nästa slag.
Om j<i j < i så är bij=1100k=j+1100-jbik b_{ij} = \frac{1}{100}\sum_{k=j + 1}^{100 - j} b_{ik} , detta eftersom spelare nr 2 måste fortsätta slå här, annars förlorar den.

Sedan låter vi ai a_i vara sannolikheten att spelare nr 1 vinner då spelare nr 1 har i poäng. Det gäller då att
a100=1-b100,0 a_{100} = 1 - b_{100, 0}
ai=max1-bi,0,1100k=i+1100ak a_{i} = max\left\{ 1 - b_{i, 0}, \,\frac{1}{100}\sum_{k=i+1}^{100} a_k\right\}

För att detta ska gå ihop rent logiskt så måste det gälla att
p=1-a0 p = 1 - a_0

Detta är en ekvation som man kan lösa med hjälp av programmering, och det ger att p0.5746 p \approx 0.5746 . Så sannolikheten att spelare nr 1 vinner är därför ungefär 0.4254 0.4254 då båda spelar optimalt.

Korra 3798
Postad: 10 nov 2017 22:27 Redigerad: 10 nov 2017 22:34

Förstår inte exakt allting men om du verkligen fick fram rätt svar så är det väldigt imponerande. Bra jobbat.  Kommer att titta på den ett längre tag tills jag förstår mer. 

 

Du skriver att sannolikheten att vinna för spelare 1 är ungefär 42% då är det bättre att spela de första spelet om man ska vinna fler gånger. Detvar dock väldigt nära. 

Korra 3798
Postad: 10 nov 2017 22:39 Redigerad: 10 nov 2017 22:40
Stokastisk skrev :

Säg att sannolikheten att spelare nr 2 vinner är p när båda spelar optimalt.

Låt nu bij b_{ij} vara sannolikheten att spelare nr 2 vinner då spelare nr 1 fick i poäng och spelare nr 2 har j poäng.
Vi har då att det måste gälla att
Om j>i j > i så är bij=1 b_{ij} = 1 , detta eftersom spelare 2 bara beslutar att sluta då den har mer poäng än spelare nr 1.

Vänta nu, om j > i så är det inte 100% sannolikt  att spelare 2 vinner. Bara om (j > i)  100    

j får ej överstiga 100 arnars är det en förlust.  Ser inte att du har inkluderat det på något sätt där. Är det något jag missuppfattar? 

Stokastisk 3597 – Fd. Medlem
Postad: 10 nov 2017 22:43

Ja, det är alltså om 100j>i 100 \ge j > i så är det 100% sannolikhet att man vinner, man slutar bara slå helt enkelt.

Det inkluderas också för att  man inte tar med de fall som leder till över 100 i poäng när man befinner sig i situationen då j<i j < i .

Korra 3798
Postad: 10 nov 2017 22:45
Stokastisk skrev :

Ja, det är alltså om 100j>i 100 \ge j > i så är det 100% sannolikhet att man vinner, man slutar bara slå helt enkelt.

Det inkluderas också för att  man inte tar med de fall som leder till över 100 i poäng när man befinner sig i situationen då j<i j < i .

Jaa, det är en väldigt fin och logisk uträkning. Vilken av de två lekar hade du föredragit? 

Stokastisk 3597 – Fd. Medlem
Postad: 10 nov 2017 22:55

Jag hade föredragit den första. Som spelare nr 1 har man inte mycket att vinna på andra alternativet. Det är väldigt enkelt för spelare nr 2 i andra spelet att förstå hur den ska spela, det enda den behöver fundera över är om den ska fortsätta eller stanna när det har blivit lika. Men det beslutet påverkar inte så jättemycket hur sannolikheterna förändras, så det spelar inte så stor roll hur man tar det beslutet.

Som spelare nr 1 så måste man spela optimalt (om min uträkning stämmer så bör man som spelare nr 1 fortsätta slå så länge man har under 58 poäng, och då ska man känna till att det är så man ska spela), och även om man gör det så har man större sannolikhet att vinna i första spelet.

Stokastisk 3597 – Fd. Medlem
Postad: 16 nov 2017 11:15

För att förtydliga lösningen, vi kallar spelare 1 för A och spelare 2 för B.

Nu låter vi bij b_{ij} vara sannolikheten att spelare B vinner då spelare A har i poäng och spelare B har j poäng och B ska ta sitt beslut vad den ska göra.

 För att kunna hantera händelsen att man får lika lite olika så låter vi p p vara sannolikheten att A vinner då det blir lika. Nu kan man då se att vi har tre olika situationer för bij b_{ij} .

Ett är att i<j i < j , detta innebär alltså att B har mer poäng än A vilket därför leder till att B ska bara välja att sluta spelar och därmed vinner.

Ett är att i=j i = j , detta innebär att B ska fortsätta spelar om sannolikheten att den vinner i nästa slag är större än 1-p 1 - p (sannolikheten att B vinner vid oavgjort).

Det tredje alternativet är att i>j i > j och här är det ganska självklart att B ska fortsätta spela.

Så man får att

bij=1om i <jmax1-p,1100k=j+1100bikom i =j1100k=j+1100bikom i >j

Vi kan notera att alla bij b_{ij} bara beror på de bik b_{ik} där k>j k > j , vilket alltså innebär att vi kan beräkna bij b_{ij} genom att iterativt börja med j=100 j = 100 och sedan stega oss nedåt för varje 0i100 0 \le i \le 100 .

För att nu beräkna sannolikheten att A vinner, så låter vi ai a_i vara sannolikheten att A vinner då den har i poäng. Genom liknande resonemang som tidigare, så inser man att A ska fortsätta spela om sannolikheten är större att den  vinner då den fortsätter än om den stannar. Sannolikheten att A vinner om den stannar är nu bi,0 b_{i, 0} vilket alltså leder till att då i<100 i < 100 så har man

ai=max1-bi,0,1100k=i+1100ak

Så nu beror ai a_i enbart på aj a_j där j>i j > i vilket leder till att man kan beräkna det genom att stega sig nedåt. Samt att a100=1 a_{100} = 1 eftersom spelare A vinner då den får 100 poäng.

 

Nu är alltså a0 a_0 sannolikheten för att A vinner då båda spelar optimalt. Så om regeln är att B vinner vid lika så kan vi beräkna a0 a_0 genom att låta p=0 p = 0 . Om det är så att det blir omspel så löser vi enbart ekvationen a0=p a_0 = p .

Man får nu att a00.41879665 a_0 \approx 0.41879665 p=0 p = 0 och man får att a00.4256625 a_0 \approx 0.4256625 då man löser ekvationen a0=p a_0 = p .

Svara
Close