Vinnaren i pepparkakshustävlingen!
2011-09-03, 13:48
  #1
Medlem
Ett tärningsspel går till så:

En spelare slår två tärningar och räknar summan av prickarna. För första omgången gäller att om det tärningskasten ger 7 eller 11 prickar vinner spelaren. Om första kasten ger 2,3 eller 12 prickar är det förlust. Vid kast som ger 4,5,6,8,9 eller 10 blir det i kommande omgångar spelarens nya punkt.

Ifall spelaren går vidare från första omgången gäller det för spelaren att slå tärningarna till den siffran som utgör spelarens punkt (=vinst) eller så slår spelaren till en 7:a, men nu betyder 7:an en förlust. Alla andra summor som spelaren slår ihop betyder varken eller för de fortsatta spelomgångarna.


Vad är sannolikheten att spelaren vinner en omgång av tärningsspelet?

************************************************** ***************'''

Jag är helt på det klara hur sannolikhetsberäkningarna ser ut för första spelomgången:

Pr(vinst): Ges vid 7,11 = 8/36
Pr(Förlust): Ges vid 2,3,12 = 4/36
Pr(varken/el.):Ges vid 4,5,6,8,9,10 24/36


I de fortsatta spelomgångarna blir Pr(Förlust vid 7:a)= 6/36.


Det jag inte får ihop är hur jag ska gå till väga för att slå ihop den första omgångens vinstchanser med de kommande omgångarnas, eftersom vinstchansen efter första omgången varierar mellan 3/36 (4;10) och 5/36(6;8) beroende på vad man summan blir i första spelomgången.
Citera
2011-09-03, 16:14
  #2
Medlem
Jooncs avatar
Det blir ganska omständigt att räkna på det här, i alla fall med de metoder jag känner till. Ett alternativ är att simulera det upprepade gånger (java):
Kod:
import java.util.Random;
public class 
dice {
    public static 
void main(String[] args){
        
int wins 0;
        
int losses 0;
        
Random rand = new Random();
        
boolean wonlost;
        for (
int i 0100000000i++){
            
won false;
            
lost false;
            
int sum rand.nextInt(6) + rand.nextInt(6) + 2;
            if (
sum == || sum == 11){
                
won true;
                
wins++;
            }else if(
sum == || sum == || sum == 12){
                
lost true;
                
losses++;
            }
            while (!
won && !lost){
                
int tmp rand.nextInt(6) + rand.nextInt(6) + 2;
                if (
tmp == 7){
                    
lost true;
                    
losses++;
                }
                if (
tmp == sum){
                    
won true;
                    
wins++;
                }
            }
        }
        
System.out.println("Probability of winning: " + (double) wins/(wins+losses));
    }

Output från 2 körningar med vardera 100 miljoner simulering:


Probability of winning: 0.49287316
Probability of winning: 0.49286085

Så med ganska stor säkerhet är sannolikheten att vinna 49,3%

Du får också gärna kolla koden så att jag tolkat spelet rätt.
EDIT: fixa fel: && i stället för ||
__________________
Senast redigerad av Joonc 2011-09-03 kl. 17:05.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback