Pws Miljoenenjacht

Continue & discrete verdelingen, toevalsveranderlijken, betrouwbaarheidsintervallen, correlaties.
Plaats reactie
Toasterwolf
Nieuw lid
Nieuw lid
Berichten: 6
Lid geworden op: 20 jul 2018, 15:08

Pws Miljoenenjacht

Bericht door Toasterwolf » 04 dec 2019, 13:28

Goedemiddag,

Mijn naam is Micha en ik zit in 6vwo. Ik houd mijn profielwerkstuk over het spel miljoenenjacht of deal or no deal en ik zit met een vraag. Het is mij gelukt om een benadering van een formule te maken voor het bod van de bank voor elke ronde, maar nu wil ik een kans opstellen voor elk spel het liefste in excel dat het volgende bod hoger wordt dan het vorige bod. Uit de formules val te concluderen dat het bod elke ronde dichter bij het gemiddelde zit en nu zoek ik dus de kans dat je gemiddelde zo erg zakt dat je bod ook zakt. Is het mogelijk om een formule op te stellen voor deze kans en hoe kan ik die in excel programmeren.

Dit is bijvoorbeeld de formule van de bank voor de eerste ronde: =AFRONDEN.N.VEELVOUD(L32+L28*(0,05+L28/10000000-(L30)/55000000)+L33+L34;1000)

Met L32 en L33 en L34 als bonussen voor verschillende situaties (als je bijvoorbeeld meer miljoenenbedragen over hebt) en L28 als gemiddelde en L30 als standaardafwijking.

Hopelijk kan iemand mij hiermee spoedig helpen.

Mvg,
Micha

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Pws Miljoenenjacht

Bericht door arie » 04 dec 2019, 20:05

Ik heb je kopie-post in het subforum puzzels weggehaald, 1 exemplaar volstaat.
Dit houdt de discussie centraal en voorkomt dubbel werk.

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Pws Miljoenenjacht

Bericht door arie » 06 dec 2019, 15:32

Eerst een voorbeeld in het klein:
Stel we hebben 5 gesloten koffers, met daarin deze geldwaardes: 1, 5, 10, 500 en 10000 euro.
In totaal zit er in deze koffers dus 1 + 5 + 10 + 500 + 10000 = 10516 euro,
gemiddeld is dat 10516 / 5 = 2103.20 euro.

Stel vervolgens dat we hiervan nu 2 koffers moeten openen.
Dit is dan een trekking van 2 uit 5, zonder terugleggen, en de volgorde is niet belangrijk.
Het aantal mogelijke trekkingen (= combinaties van 2 uit 5) is dan
\({5 \choose 2}= \frac{5!}{2!\cdot 3!} = 10\)

We kunnen voor al deze 10 mogelijkheden nagaan wat steeds de totale restwaarde in de 3 overgebleven koffers is, en wat er dan nog gemiddeld in die 3 koffers zit.
In onderstaande tabel zie je alle 10 mogelijkheden (kruisje = deze koffer is gekozen om te openen) en restwaarden:

Code: Selecteer alles

   1    5   10  500  10000    restwaarde:   gemiddeld per koffer:
--------------------------------------------------------------------
   x    x                       10510             3503.33
   x        x                   10505             3501.67
   x             x              10015             3338.33
   x                   x          515              171.67
        x   x                   10501             3500.33
        x        x              10011             3337.00
        x              x          511              170.33
            x    x              10006             3335.33
            x          x          506              168.67
                 x     x           16                5.33
--------------------------------------------------------------------
                        som:    63096
De som van de 10 nieuwe restwaarden is 63096.
Het nieuwe gemiddelde restbedrag per combinatie is dus = 63096 / 10 = 6309.60,
en over de 3 resterende koffers is dat gemiddeld 2103.20 per koffer.

Merk op dat dit gelijk is aan het oorspronkelijke gemiddelde.
De verwachte nieuwe waarde is dus gelijk aan de huidige waarde per koffer.
Dat is niet verwonderlijk:
In de oorspronkelijke situatie hebben we in de tabel 10 * 10516 = 10516 euro te verdelen over 10 * 5 = 50 koffers
In de nieuwe situatie komt elke koffer \({4 \choose 1} = 4\) keer voor in een combinatie van 2 uit 5 (er moet immers nog 1 koffer getrokken worden uit de overgebleven 4 mogelijkheden).
In totaal doet elke koffer dus \({5 \choose 2} - {4 \choose 1} = 10 - 4 = 6\) keer mee in de tabel.
In de nieuwe situatie hebben we in de tabel dus 6 * 10516 = 63096 euro te verdelen over 10 * 3 = 30 koffers.
En 10 * 10516 euro over 10 * 5 koffers = 6 * 10516 euro over 10 * 3 koffers.

Dit kan je ook voor het algemene geval aantonen (trekking van k uit n koffers).


Wat verder opvalt is dat van de 10 combinaties:
- 6 een hogere restwaarde hebben per koffer dan de oorspronkelijke 2103.20 euro,
met een gemiddelde van (3503.33 + 3501.67 + 3338.33 + 3500.33 + 3337.00 + 3335.33) / 6 = 3419.33
- 4 een lagere restwaarde hebben per koffer dan de oorspronkelijke 2103.20 euro,
met een gemiddelde van (171.67 + 170.33 + 168.67 + 5.33) / 4 = 129.00 euro

In dit geval heb je dus een kans van 6/10 = 60 % op een (wat) hogere waarde, en
een kans van 4/10 = 40 % op een (veel) lagere waarde,
maar gemiddeld (= naar verwachting) blijft je geldbedrag hetzelfde.

Als de bank dus het exacte gemiddelde zou bieden, zou deze naar verwachting (= op langere termijn, na heel erg veel spelletjes) gelijk spelen.
Echter: de 26 officiele koffers hebben de volgende verzameling geldwaarden:
{0.01, 0.2, 0.5, 1, 5, 10, 20, 50, 100, 500, 1000, 2500, 5000, 10000, 25000, 50000, 100000, 200000, 300000, 400000, 500000, 750000, 1000000, 2000000, 2500000, 5000000}
Het gemiddelde hiervan is 494007.18 euro. Als de bank dit bedrag zou bieden voordat er wat geopend is, dan zou ik dat gelijk accepteren en was het spel afgelopen. Dat is alleen niet zo leuk voor de kijkers, vandaar dat de bank in het begin met een erg laag bod zal komen.


Hier nog een Excel macro om al deze getallen te berekenen:

Code: Selecteer alles


' GLOBALE VARIABELEN:
Dim teopenen As Long             ' aantal te openen koffers
Dim kofferwaarden(26) As Double  ' de geldwaarden van alle koffers (maximaal 26 koffers)
Dim kofferdicht(26) As Long      ' 1=dicht  0=open
Dim aantalkoffers As Long        ' huidig aantal koffers
Dim totaalgeld As Double         ' totaal geldbedrag in alle koffers samen
Dim koffergemiddelde As Double   ' gemiddelde geldbedrag over alle koffers
Dim regel As Long                ' regelnummer (rijnummer) in werkblad waar geschreven gaat worden
Dim aantalcombinaties As Long    ' aantal combinaties (trekking van k te openen koffers uit n koffers)
Dim nieuwaantalkoffers As Long   ' = huidig aantal koffers - aantal te openen koffers
Dim aantalgroter As Long         ' aantal combinaties met groter gemiddeld geldbedrag dan huidige
Dim aantalgelijk As Long         ' aantal combinaties met gemiddeld geldbedrag gelijk aan het huidige gemiddeld geldbedrag
Dim aantalkleiner As Long        ' aantal combinaties met kleiner gemiddeld geldbedrag dan huidige
Dim bedraggroter As Double       ' waarde van de combinaties met grotere geldbedragen
Dim bedraggelijk As Double       ' waarde van de combinaties met gelijke geldbedragen
Dim bedragkleiner As Double      ' waarde van de combinaties met kleinere geldbedragen


' schrijf de 26 standaard kofferwaarden op regel 2:
Sub schrijfStandaardwaarden()
standaardwaarden = Array(0, 0.01, 0.2, 0.5, 1, 5, 10, 20, 50, 100, 500, 1000, 2500, 5000, 10000, 25000, 50000, 100000, 200000, 300000, 400000, 500000, 750000, 1000000, 2000000, 2500000, 5000000)
For i = 1 To 26
  Cells(2, i) = standaardwaarden(i)
Next i
End Sub


' Maak alle combinaties van k te openen koffers uit in totaal n koffers:
' verwijder (= open) het benodigde aantal koffers:
'     vanafkoffer = open een koffer vanaf deze waarde t/m het eind
'     nogweg = aantal koffers dat we op dit moment nog moeten openen
'     koffersom = huidige totale waarde van de nog gesloten koffers
Function verwijder(vanafkoffer As Long, nogweg As Long, koffersom As Double)
' als we alle benodigde k koffers geopend hebben (= nogweg=0):
If nogweg = 0 Then
  aantalcombinaties = aantalcombinaties + 1  ' we hebben een nieuwe combinatie gevonden
  regel = aantalcombinaties + 2              ' schrijf het resultaat op de juiste regel van het werkblad
  For i = 1 To aantalkoffers
    Cells(regel, i) = kofferdicht(i)
  Next i
  nieuwgemiddelde = koffersom / nieuwaantalkoffers     ' bereken de nieuwe gemiddelde geldwaarde van de koffers
  Cells(regel, aantalkoffers + 3) = nieuwgemiddelde
  If nieuwgemiddelde > koffergemiddelde Then           ' registreer de nieuwe gemiddelde waarde in vergelijk met de oude
    Cells(regel, aantalkoffers + 4) = 1
    aantalgroter = aantalgroter + 1
    bedraggroter = bedraggroter + nieuwgemiddelde
  ElseIf nieuwgemiddelde < koffergemiddelde Then
    Cells(regel, aantalkoffers + 4) = -1
    aantalkleiner = aantalkleiner + 1
    bedragkleiner = bedragkleiner + nieuwgemiddelde
  Else
    Cells(regel, aantalkoffers + 4) = 0
    aantalgelijk = aantalgelijk + 1
    bedraggelijk = bedraggelijk + nieuwgemiddelde
  End If
  verwijder = 0  ' geef verwijder een waarde om naar de volgende regel te kunnen gaan
Else
  For i = vanafkoffer To aantalkoffers
    kofferdicht(i) = 0    ' open deze koffer
    verwijder = verwijder(i + 1, nogweg - 1, koffersom - kofferwaarden(i))  ' open de volgende koffer vanaf de volgende index i
    kofferdicht(i) = 1    ' we gaan weer door: sluit deze koffer weer en open de volgende (als dat kan)
  Next i
End If
verwijder = 0
End Function

' bepaal het maximum van a en b:
Function Max(a, b)
If a > b Then
  Max = a
Else
  Max = b
End If
End Function


' hoofdprogramma: geef de statistieken voor de huidige trekking:
Sub kofferberekening()

teopenen = Cells(1, 1)  ' lees het aantal te openen koffers uit cel A1

totaalgeld = 0
i = 1
Do While Not IsEmpty(Cells(2, i))  ' lees alle kofferwaarden uit regel 2 (totdat we aan een lege cel komen)
  kofferwaarden(i) = Cells(2, i)
  totaalgeld = totaalgeld + kofferwaarden(i)
  i = i + 1
Loop
aantalkoffers = i - 1
Cells(2, aantalkoffers + 2) = totaalgeld       ' print som van de geldwaarden van alle koffers
koffergemiddelde = totaalgeld / aantalkoffers
Cells(2, aantalkoffers + 3) = koffergemiddelde ' print gemiddelde geldwaarde
For i = 1 To aantalkoffers                     ' alle koffers zijn gesloten
  kofferdicht(i) = 1
Next i
nieuwaantalkoffers = aantalkoffers - teopenen
' zet alle tellers en sommaties op nul voordat we starten:
aantalcombinaties = 0
aantalgroter = 0
aantalgelijk = 0
aantalkleiner = 0
bedraggroter = 0
bedraggelijk = 0
bedragkleiner = 0

' bepaal alle combinaties nCk:
a = verwijder(1, teopenen, totaalgeld)

' toon alle resultaten:
regel = aantalcombinaties + 4
Cells(regel, 1) = "aantal combinaties:"
Cells(regel, 3) = aantalcombinaties

regel = regel + 2
Cells(regel, 3) = "groter"
Cells(regel, 4) = "gelijk"
Cells(regel, 5) = "kleiner"

regel = regel + 1
Cells(regel, 1) = "aantal:"
Cells(regel, 3) = aantalgroter
Cells(regel, 4) = aantalgelijk
Cells(regel, 5) = aantalkleiner

regel = regel + 1
Cells(regel, 1) = "percentage:"
Cells(regel, 3) = 100 * aantalgroter / aantalcombinaties
Cells(regel, 4) = 100 * aantalgelijk / aantalcombinaties
Cells(regel, 5) = 100 * aantalkleiner / aantalcombinaties

regel = regel + 1
Cells(regel, 1) = "gemiddelde waarde:"
Cells(regel, 3) = bedraggroter / Max(1, aantalgroter)
Cells(regel, 4) = bedraggelijk / Max(1, aantalgelijk)
Cells(regel, 5) = bedragkleiner / Max(1, aantalkleiner)

regel = regel + 2
Cells(regel, 1) = "oude gemiddelde waarde:"
Cells(regel, 4) = koffergemiddelde

End Sub

Copy paste het naar de Visual Basic omgeving van ThisWorkbook,
vul in cel A1 van het normale werkblad het aantal te openen koffers in,
en in regel 2 vanaf A2 alle kofferwaarden, laat na de laatste koffer een cel leeg (dan herkent de macro dat alle koffers gelezen zijn),
en start vervolgens de macro kofferberekening.

Voor het voorbeeld hierboven krijg je dan dit resultaat:

Afbeelding


Voor het openen van 6 koffers uit 26 (dat zijn \({26 \choose 6} = 230230\) combinaties) lukt dit ook, maar daar doet Excel bij mij ongeveer 8 minuten over.
Ik krijg dan deze resultaten:

Afbeelding


Bedoel je zoiets?


PS
Als je nog geen macro's gebruikt hebt, kan het zijn dat je:
- macro-afhandeling eerst moet toestaan, zie bv
https://www.spreadsheet1.com/how-to-ena ... excel.html
- de macro developer werkbalk van Excel nog zichtbaar moet maken, zie bv
https://www.techonthenet.com/excel/ques ... ab2007.php

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Pws Miljoenenjacht

Bericht door arie » 07 dec 2019, 11:08

Hier nog een histogram van de 230230 gemiddelde restwaarden van de koffers bij een trekking van 6 uit 26.
De waarden zijn gegroepeerd per 10000-voud x-as, op de y-as de aantallen per groep.
Doordat er slechts 26 koffers zijn en de waarden van die koffers bovendien sterk verschillen is de verdeling niet vlak.
Ik verwacht voor een willekeurig gegeven spelsituatie dan ook geen eenvoudige formule voor de kans op een hoger of lager bod na de volgende trekking.

PS: Je ziet grofweg 4 grote toppen (bij x = 27, 37, 51 en 61).
Welke koffers zullen hiervoor het meest verantwoordelijk zijn?

Afbeelding

Plaats reactie