Raadsel: wie lost 'em op?
Ja, hier is de code:Pim schreef:Memento,
Heb je dan ook de kans meegenomen dat je gelijk in de eerste ronde de juiste kluis gekozen hebt?
Code: Selecteer alles
procedure TfrmMain.Button5Click(Sender: TObject);
var
RSwitched, WSwitched: Integer;
RUnSwitched, WUnSwitched: Integer;
procedure Again(Wisselt: Boolean);
var
I, Keuze, KeuzeQuizmaster: Integer;
X: array[1..3] of Boolean;
begin
{ Vul 1 willekeurig kluisje }
X[1] := False; X[2] := False; X[3] := False;
X[Random(3)+1] := True;
{ Speler kiest een kluisje }
Keuze := Random(3)+1;
{ De quizmaster opent willekeurig 1 leeg kluisje }
KeuzeQuizmaster := Keuze;
while (Keuze = KeuzeQuizmaster) or (X[KeuzeQuizmaster] = True) do
KeuzeQuizmaster := Random(3)+1;
{ Speler wisselt van gekozen kluisje }
if Wisselt then
begin
for I:= Low(X) to High(X) do
if (I <> Keuze) and (I <> KeuzeQuizmaster) then
begin
Keuze := I;
Break;
end;
if (X[Keuze] = True) then Inc(RSwitched) else Inc(WSwitched);
end else
if (X[Keuze] = True) then Inc(RUnSwitched) else Inc(WUnSwitched);
end;
var
I: Integer;
begin
RSwitched := 0; RUnSwitched := 0; WSwitched := 0; WUnSwitched := 0;
Randomize;
for I:= 0 to 100000 do
Again(True);
Randomize;
for I:= 0 to 100000 do
Again(False);
ShowMessage('Switched: ' + IntToStr(RSwitched) + ' / ' + IntToStr(WSwitched) + #10 +
'UnSwitched: ' + IntToStr(RUnSwitched) + ' / ' + IntToStr(WUnSwitched));
end;
Om zeker ervan te zijn dat het quizmaster algorithme goed was, heb ik het herschreven. De uitkomsten bleven hetzelfde. Nieuwe code:
Code: Selecteer alles
procedure TfrmMain.Button5Click(Sender: TObject);
var
RSwitched, WSwitched: Integer;
RUnSwitched, WUnSwitched: Integer;
procedure Again(Wisselt: Boolean);
var
I, Keuze, KeuzeQuizmaster: Integer;
X: array[1..3] of Boolean;
begin
{ Vul 1 willekeurig kluisje }
X[1] := False; X[2] := False; X[3] := False;
X[Random(3)+1] := True;
{ Speler kiest een kluisje }
Keuze := Random(3)+1;
{ De quizmaster opent willekeurig 1 leeg kluisje }
if X[Keuze] = True then
begin
KeuzeQuizmaster := Random(2)+1;
if X[1] = True then
begin
if KeuzeQuizmaster = 1 then
KeuzeQuizmaster := 2
else
KeuzeQuizmaster := 3;
end else
if X[2] = True then
begin
if KeuzeQuizmaster = 1 then
KeuzeQuizmaster := 1
else
KeuzeQuizmaster := 3;
end else
if X[3] = True then
begin
if KeuzeQuizmaster = 1 then
KeuzeQuizmaster := 1
else
KeuzeQuizmaster := 2;
end;
end else
for I:= 1 to 3 do
if (I <> Keuze) and (X[I] = False) then
KeuzeQuizmaster := I;
{ Speler wisselt van gekozen kluisje }
if Wisselt then
begin
for I:= Low(X) to High(X) do
if (I <> Keuze) and (I <> KeuzeQuizmaster) then
begin
Keuze := I;
Break;
end;
if (X[Keuze] = True) then Inc(RSwitched) else Inc(WSwitched);
end else
if (X[Keuze] = True) then Inc(RUnSwitched) else Inc(WUnSwitched);
end;
var
I: Integer;
begin
RSwitched := 0; RUnSwitched := 0; WSwitched := 0; WUnSwitched := 0;
Randomize;
for I:= 0 to 100000 do
Again(True);
Randomize;
for I:= 0 to 100000 do
Again(False);
ShowMessage('Switched: ' + IntToStr(RSwitched) + ' / ' + IntToStr(WSwitched) + #10 +
'UnSwitched: ' + IntToStr(RUnSwitched) + ' / ' + IntToStr(WUnSwitched));
end;
Pim: dit is een klassieker onder de raadsels.
De kans is echt 2/3 door de redenering die ik al eerder gaf. Als je rondkijkt op dit forum zul je zien dat hij al een keer eerder is opgegeven.
De simulator geeft het goed aan.
in 1 kluis is de kans 1 op 3
de andere hebben samen 2 op 3.
Door daarvan 1 te openen wordt dat niet minder. Blijft 2 op3 voor dat ene kluisje.
De kans is echt 2/3 door de redenering die ik al eerder gaf. Als je rondkijkt op dit forum zul je zien dat hij al een keer eerder is opgegeven.
De simulator geeft het goed aan.
in 1 kluis is de kans 1 op 3
de andere hebben samen 2 op 3.
Door daarvan 1 te openen wordt dat niet minder. Blijft 2 op3 voor dat ene kluisje.
Stel je hebt 10 zakken met bommeldrommen. 9 zakken bevatten bommeldrommen van 10 gram. 1 zak bevat bommeldrommen van 9 gram. De zakken zijn genummers 1 tot en met 10.
We hebben de beschikking over een weegschaal die grammen aangeeft.
Hoe bepaal je in 1 weging welke zak de lichtere beavtten?
1 weging is dus niet: eerst een munt uit zak 1, aflezen, dan een munt uit zak 2, aflezen etc. Want dat zijn meerder wegingen.
We hebben de beschikking over een weegschaal die grammen aangeeft.
Hoe bepaal je in 1 weging welke zak de lichtere beavtten?
1 weging is dus niet: eerst een munt uit zak 1, aflezen, dan een munt uit zak 2, aflezen etc. Want dat zijn meerder wegingen.
Nog een raadsel: in welk land is de nationale munt de bommeldrom? ;-)refo schreef:Stel je hebt 10 zakken met bommeldrommen. 9 zakken bevatten bommeldrommen van 10 gram. 1 zak bevat bommeldrommen van 9 gram. De zakken zijn genummers 1 tot en met 10.
We hebben de beschikking over een weegschaal die grammen aangeeft.
Hoe bepaal je in 1 weging welke zak de lichtere beavtten?
1 weging is dus niet: eerst een munt uit zak 1, aflezen, dan een munt uit zak 2, aflezen etc. Want dat zijn meerder wegingen.
Refo's vraag had ik al in steno opgelost. Leg 1 munt uit zak 1, 2 munten uit zak 2, 3 munten uit zak 3 enz op de weegschaal en je weet hoeveel afwijkende munten er zijn.David J schreef:Het blijft stil...
Dan maar een simpel raadseltje tussendoor:
Hoe kun je met een kruik van 3 liter en een van 5 liter precies 4 liter afpassen? Je hebt geen andere kruiken of emmers e.d. Je mag water vermorsen.
Jouw probleem:
-vul drie liter kruik, giet inhoud in vijf liter kruik.
-vul drie liter kruik, giet inhoud in vijf liter kruik tot deze vol is,
-giet vijf liter kruik leeg
-de overgebleven liter uit drie liter kruik doe je in vijf liter kruik
-vul drie liter kruik
-giet de inhoud van de drie liter kruik in de vijf liter kruik.
Nu het nieuwe raadsel.
Er zijn vijf wiskundig goed onderlegde, gemene, egoistische piraten. Ze hebben net 100 goudstukken buit gemaakt en die willen ze gaan verdelen.
Ze doen dit als volgt. De eerste piraat doet een voorstel over de verdeling. Vervolgens gaat men over dit voorstel stemmen. Als er geen absolute meerderheid (degene die het voorstel doet heeft stemrecht) akkoord gaat met het voorstel, dan gaat de eerste piraat overboord en kan dus niet meer mee stemmen en de tweede piraat mag een voorstel gaan doen, waarbij op dezelfde manier een beslissing wordt genomen.
Nog wat regels:
Een piraat gaat akkoord als zijn deel van de buit in het voorstel (strikt) groter is dan de opbrengst die hij vermoedelijk zou krijgen als hij tegen zou stemmen.
Een piraat zit er niet mee om overboord te gaan. Als hij kan kiezen tussen samen overboord of samen zonder geld, kiest hij voor samen overboord.
De piraten weten van elkaar dat ze allemaal goed in wiskunde zijn en dat ze allemaal dezelfde strategie zullen hanteren.
Hoeveel goudstukken kan de eerste piraat zichzelf maximaal toebedelen bij zijn voorstel, zodat hij ze ook nog krijgt?
Niets toch? Of ben ik nu gek?
Als de eerste piraat met een bepaald voorstel zou komen, dan zouden de anderen allemaal tegen zijn, want bij de eerste stemming zouden ze gemiddeld 20 goudstukken per persoon kunnen krijgen bij een evenwijdige verdediging.
Dat gaat met de eerste piraat overboord bij een gelijke verdeling al naar 25 goudstukken per persoon, dus kan hij wat er over is van 4*25 goudstukken vragen en dat is 0.
Als de eerste piraat met een bepaald voorstel zou komen, dan zouden de anderen allemaal tegen zijn, want bij de eerste stemming zouden ze gemiddeld 20 goudstukken per persoon kunnen krijgen bij een evenwijdige verdediging.
Dat gaat met de eerste piraat overboord bij een gelijke verdeling al naar 25 goudstukken per persoon, dus kan hij wat er over is van 4*25 goudstukken vragen en dat is 0.
Nee want als de tweede dan een voorstel gaat doen wordt hij ook overboord gezet. (Dat was niet duidelijk uit de vraag misschien, maar nu wel).Kaw schreef:Niets toch? Of ben ik nu gek?
Als de eerste piraat met een bepaald voorstel zou komen, dan zouden de anderen allemaal tegen zijn, want bij de eerste stemming zouden ze gemiddeld 20 goudstukken per persoon kunnen krijgen bij een evenwijdige verdediging.
Dat gaat met de eerste piraat overboord bij een gelijke verdeling al naar 25 goudstukken per persoon, dus kan hij wat er over is van 4*25 goudstukken vragen en dat is 0.