Risk
Risk
Als persoon A met a dobbelstenen gooit en persoon B met b dobbelstenen, wat is de kans dat Sa (som dobbelstenen a) > Sb?
Dit is geen opdracht, maar ik heb er zelf over na zitten denken en kom er niet uit. Ik zou een programma kunnen schrijven, maar liever heb ik een formule (al dan niet een benadering).
Dit is geen opdracht, maar ik heb er zelf over na zitten denken en kom er niet uit. Ik zou een programma kunnen schrijven, maar liever heb ik een formule (al dan niet een benadering).
-
- Vergevorderde
- Berichten: 1923
- Lid geworden op: 25 dec 2008, 16:28
- Locatie: Beek en Donk, Noord-Brabant
Re: Risk
Ga uit van het gegeven dat je met 1 dobbelsteen minimaal 1 en maximaal 6 kunt gooien.
"Mathematics is a gigantic intellectual construction, very difficult, if not impossible, to view in its entirety." Armand Borel
-
- Vergevorderde
- Berichten: 1923
- Lid geworden op: 25 dec 2008, 16:28
- Locatie: Beek en Donk, Noord-Brabant
Re: Risk
Wat is het totaal aantal mogelijkheden als je met 1 dobbelsteen gooit, en wat is het totaal aantal mogelijkheden bij n dobbelstenen?Dux schreef:Ik heb geen idee wat ik hieruit moet halen.arno schreef:Ga uit van het gegeven dat je met 1 dobbelsteen minimaal 1 en maximaal 6 kunt gooien.
"Mathematics is a gigantic intellectual construction, very difficult, if not impossible, to view in its entirety." Armand Borel
Re: Risk
Ik zou met kansen op een bepaald aantal dobbelstenen op een bepaald aantal ogen, in plaats van aantal mogelijkheden omdat het aantal dobbelstenen verschillend kan zijn. Maar bij Risk kijk je toch naar dobbelstenen op zich in plaats van de som?
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)
(Raffiek Torreman)
Re: Risk
Ik baseer mijn vraag niet op Risk, maar een simpeler spel gebaseerd op Risk (zoiets als http://www.spelle.nl/Denk/2283/Risken_1.html )David schreef:Ik zou met kansen op een bepaald aantal dobbelstenen op een bepaald aantal ogen, in plaats van aantal mogelijkheden omdat het aantal dobbelstenen verschillend kan zijn. Maar bij Risk kijk je toch naar dobbelstenen op zich in plaats van de som?
Re: Risk
Breek het probleem in verschillende problemen.
Bereken de kans dat gegeven een aantal ogen van A, Qa groter is dan het aantal ogen van B, Qb, voor alle mogelijkheden voor Qa. Kies bijvoorbeeld: a ( = aantal dobbelstenen A) = 3, b (= aantal dobbelstenen B) = 2. (of het probleem dat Qb lager is dan Qa voor alle mogelijkheden voor alle mogelikheden voor Qa).
Wat als Qa = Qb?
Bereken de kans dat gegeven een aantal ogen van A, Qa groter is dan het aantal ogen van B, Qb, voor alle mogelijkheden voor Qa. Kies bijvoorbeeld: a ( = aantal dobbelstenen A) = 3, b (= aantal dobbelstenen B) = 2. (of het probleem dat Qb lager is dan Qa voor alle mogelijkheden voor alle mogelikheden voor Qa).
Wat als Qa = Qb?
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)
(Raffiek Torreman)
Re: Risk
David schreef:Bereken de kans dat gegeven een aantal ogen van A, Qa groter is dan het aantal ogen van B, Qb, voor alle mogelijkheden voor Qa. Kies bijvoorbeeld: a ( = aantal dobbelstenen A) = 3, b (= aantal dobbelstenen B) = 2. (of het probleem dat Qb lager is dan Qa voor alle mogelijkheden voor alle mogelikheden voor Qa).
Wat als Qa = Qb?
Bedoel je dit?
Als Qa = Qb wint in het spel de verdediger; aangezien alleen aanvallen jouw keuze is, wil ik Qa>Qb berekenen ipv Qa>=Qb.
Re: Risk
Ja, ziet er goed uit. Dit is voor de situatie dat persoon A persoon B aanvalt Je zei je zou een programma kunnen schrijven. Wat voor programma zou je schrijven? Je kan op een formule komen maar uiteindelijk wil je misschien een tabel maken voor de kansen. Om die te maken kan je een programma schrijven.
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)
(Raffiek Torreman)
Re: Risk
Code: Selecteer alles
a b p(Sa > Sb)
______________________________________________________
1 1 15/6^2 = 0,416666666666667
1 2 20/6^3 = 9,25925925925926E-02
1 3 15/6^4 = 1,15740740740741E-02
1 4 6/6^5 = 7,71604938271605E-04
1 5 1/6^6 = 2,14334705075446E-05
1 6 0/6^7 = 0
2 1 181/6^3 = 0,837962962962963
2 2 575/6^4 = 0,443672839506173
2 3 1182/6^5 = 0,152006172839506
2 4 1674/6^6 = 3,58796296296296E-02
2 5 1709/6^7 = 6,10496684956561E-03
2 6 1287/6^8 = 7,66246570644719E-04
3 1 1261/6^4 = 0,972993827160494
3 2 6054/6^5 = 0,778549382716049
3 3 21162/6^6 = 0,453575102880658
3 4 53664/6^7 = 0,191700960219479
3 5 101974/6^8 = 6,07126867093431E-02
3 6 149942/6^9 = 1,48785992353808E-02
4 1 7755/6^5 = 0,997299382716049
4 2 43821/6^6 = 0,939236111111111
4 3 207945/6^7 = 0,742830504115226
4 4 771831/6^8 = 0,459528249314129
4 5 2221551/6^9 = 0,220442351108825
4 6 5044260/6^10 = 8,34228379185084E-02
5 1 46649/6^6 = 0,999849965706447
5 2 276560/6^7 = 0,987940100594422
5 3 1527354/6^8 = 0,90934713648834
5 4 7236576/6^9 = 0,718078417924097
5 5 28035360/6^10 = 0,463653597012651
5 6 87959820/6^11 = 0,24244910079976
6 1 279935/6^7 = 0,999996427754915
6 2 1676621/6^8 = 0,998216854328608
6 3 9828775/6^9 = 0,975299810591627
6 4 53449286/6^10 = 0,88395346846475
6 5 253818766/6^11 = 0,69961638828734
6 6 1015970930/6^12 = 0,46673060195211
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)
(Raffiek Torreman)
Re: Risk
Mijn uitkomsten zijn dezelfde:
Mijn programma bestaat uit twee delen.
Dit deel maakt voor alle aantallen dobbelstenen tot en met d een lijst met frequenties (= mogelijkheden) voor een aantal ogen:
Het volgende deel gaat alle a's en b's door en dan alle mogelijkheden van a (dan voert hij eigenlijk die som uit die ik eerder postte), hij telt de kansen op en laat ze op beeld zien:
Ik zag aan jouw post dat het meervouden zijn van 1/(6^(a+b)), wat eigenlijk wel logisch is.
PS: Ik sta open voor opmerkingen op mijn programmeren , ik heb het mezelf aangeleerd.
Code: Selecteer alles
a b p(Sa>Sb)
----------------------------
1 1 0.4166666666666667
1 2 0.09259259259259259
1 3 0.011574074074074073
1 4 0.0007716049382716048
1 5 2.1433470507544583e-05
1 6 0.0
2 1 0.837962962962963
2 2 0.4436728395061728
2 3 0.15200617283950615
2 4 0.03587962962962963
2 5 0.006104966849565615
2 6 0.0007662465706447187
3 1 0.9729938271604938
3 2 0.7785493827160493
3 3 0.4535751028806584
3 4 0.19170096021947874
3 5 0.060712686709343086
3 6 0.014878599235380787
4 1 0.9972993827160495
4 2 0.9392361111111109
4 3 0.7428305041152261
4 4 0.45952824931412894
4 5 0.22044235110882487
4 6 0.08342283791850835
5 1 0.9998499657064469
5 2 0.9879401005944214
5 3 0.90934713648834
5 4 0.7180784179240969
5 5 0.46365359701265046
5 6 0.24244910079975954
6 1 0.9999964277549153
6 2 0.9982168543286084
6 3 0.9752998105916272
6 4 0.8839534684647495
6 5 0.6996163882873404
6 6 0.46673060195210997
Dit deel maakt voor alle aantallen dobbelstenen tot en met d een lijst met frequenties (= mogelijkheden) voor een aantal ogen:
Code: Selecteer alles
def frequenties(d):
f=[0]
for n in range(1,d+1):
Qn=[0] * (6*n+1)
ds=[1] * n
while sum(ds) < 6*n:
Qn[sum(ds)] += 1
ds[-1]+=1
while 1:
try:
i=ds.index(7)
except ValueError:
i=-1
if i==-1:
break
else:
ds[i]=1
ds[i-1]+=1
Qn[sum(ds)]+=1
f.append(Qn)
return f
Code: Selecteer alles
for a in range(1,d+1):
for b in range(1,d+1):
p=0
for i in range(0,len(f[a])):
winst=0
for j in range(0,i):
if j+1>len(f[b]):
break
winst+=f[b][j]
winkans=winst/sum(f[b])
p+=f[a][i]/sum(f[a])*winkans
print(a,b,p)
Omdat de formule waarschijnlijk uiteindelijk hetzelfde zou doen als het programma en omdat het programma een exact antwoord kan geven ,die meervouden van 1/(6^(a+b)), is hij ook niet nodig voor een exact antwoord.David schreef:Hoezo geef je de formule op?
PS: Ik sta open voor opmerkingen op mijn programmeren , ik heb het mezelf aangeleerd.
Re: Risk
Ok, dat heb je snel gedaan!
Ik heb deze formules gebruikt:
Gegeven n dobbelstenen. Dan de kans dat je minder dan s ogen gooit is
De kans dat je precies s ogen gooit is
Hier is mijn code, voor Excel VBA
bepaal voor a = 1 t/m 6 en b = 1 t/m 6 de kansen
bereken het aantal mogelijkheden om met a dobbelstenen meer ogen te gooien dan met b dobbelstenen.
aantal mogelijkheden om met n dobbelstenen een aantal ogen te gooien <= s.
aantal mogelijkheden om met n dobbelstenen een aantal ogen te gooien gelijk aan s.
bereken (n choose k)
functies voor minimum en maximum van a en b.
Maar goed dat je het zelf hebt geleerd Ik heb wat C gehad maar vooral VBA. Ik heb een idee van wat de code doet, maar een aantal commando's, try, except, snap ik niet zo.
Ik heb deze formules gebruikt:
Gegeven n dobbelstenen. Dan de kans dat je minder dan s ogen gooit is
De kans dat je precies s ogen gooit is
Hier is mijn code, voor Excel VBA
bepaal voor a = 1 t/m 6 en b = 1 t/m 6 de kansen
Code: Selecteer alles
Sub result()
Dim a As Long, b As Long
For a = 1 To 6
For b = 1 To 6
dux a, b
Next
Next
End Sub
Code: Selecteer alles
Public Function dux(a As Long, b As Long)
Dim i As Long, s As Long
For i = min(a, b) To 6 * max(a, b)
s = s + diceeq(a, i) * diceless(b, i - 1)
'Debug.Print i, s, diceeq(a, i), diceless(b, i - 1)
Next
'print a, b, de exacte vorm en de benaderde vorm van de kans
Debug.Print a, b, s & "/6^" & (a + b) & " = " & s / 6 ^ (a + b)
End Function
Code: Selecteer alles
Function diceless(n As Long, s As Long) As Long
Dim i As Long
For i = 0 To (s - 1) \ 6
diceless = diceless + binomial(n, i) * binomial(s - 6 * i, n) * (-1) ^ i
Next
End Function
Code: Selecteer alles
Function diceeq(n As Long, s As Long) As Long
Dim i As Long
For i = 0 To (s - 1) \ 6
diceeq = diceeq + binomial(n, i) * binomial(s - 6 * i - 1, n - 1) * (-1) ^ i
Next
End Function
Code: Selecteer alles
Function binomial(n As Long, k As Long) As Long
If k = 0 Then
binomial = 1
Else
binomial = n / k * binomial(n - 1, k - 1)
End If
End Function
Code: Selecteer alles
Public Function min(a As Long, b As Long) As Long
If a < b Then min = a Else min = b
End Function
Public Function max(a As Long, b As Long) As Long
If a > b Then max = a Else max = b
End Function
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)
(Raffiek Torreman)