Raadsel: wie lost 'em op?

Gebruikersavatar
Pim
Berichten: 4033
Lid geworden op: 29 dec 2001, 11:42
Locatie: Zuid-Holland
Contacteer:

Bericht door Pim »

Memento,

Heb je dan ook de kans meegenomen dat je gelijk in de eerste ronde de juiste kluis gekozen hebt?
Hartelijke groet,

Pim.

Het is vandaag een dag van Goede Boodschap. PrekenWeb.nl
Gebruikersavatar
memento
Berichten: 11339
Lid geworden op: 29 dec 2001, 11:42

Bericht door memento »

Pim schreef:Memento,

Heb je dan ook de kans meegenomen dat je gelijk in de eerste ronde de juiste kluis gekozen hebt?
Ja, hier is de 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 }
    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;
Gebruikersavatar
memento
Berichten: 11339
Lid geworden op: 29 dec 2001, 11:42

Bericht door memento »

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;
Gebruikersavatar
refo
Berichten: 24692
Lid geworden op: 29 dec 2001, 11:45

Bericht door refo »

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.
rekcor
Berichten: 1981
Lid geworden op: 15 aug 2005, 11:25

Bericht door rekcor »

Kijk zo leren we nog eens wat. Refo, een nieuw raadsel?
Gebruikersavatar
refo
Berichten: 24692
Lid geworden op: 29 dec 2001, 11:45

Bericht door refo »

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.
Gebruikersavatar
Pim
Berichten: 4033
Lid geworden op: 29 dec 2001, 11:42
Locatie: Zuid-Holland
Contacteer:

Bericht door Pim »

10 zakken op de weegschaal, ze er 1 voor 1 afhalen en ondertussen de wijzer in de gaten houden.

Of zijn dat ook meerdere wegingen? ;)
Hartelijke groet,

Pim.

Het is vandaag een dag van Goede Boodschap. PrekenWeb.nl
Gebruikersavatar
parsifal
Berichten: 10231
Lid geworden op: 09 jan 2002, 10:15
Locatie: Zuidhorn

Bericht door parsifal »

1 keer wegen met 1 uit zak 1, 2 uit zak 2, 3 uit zak 3 enz op de weegschaal.
Gebruikersavatar
refo
Berichten: 24692
Lid geworden op: 29 dec 2001, 11:45

Bericht door refo »

Pim schreef:10 zakken op de weegschaal, ze er 1 voor 1 afhalen en ondertussen de wijzer in de gaten houden.

Of zijn dat ook meerdere wegingen? ;)
Wat denk je zelf?
David J
Berichten: 863
Lid geworden op: 21 jun 2004, 18:18

Bericht door David J »

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.
Nog een raadsel: in welk land is de nationale munt de bommeldrom? ;-)
David J
Berichten: 863
Lid geworden op: 21 jun 2004, 18:18

Bericht door David J »

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.
rekcor
Berichten: 1981
Lid geworden op: 15 aug 2005, 11:25

Bericht door rekcor »

Vijfliterkruik vullen
Vijfliterkruik gieten in drielieterkruik --> overige twee liter in vat
Vijfliterkruik vullen
Vijfliterkruik gieten in drielieterkruik --> overige twee liter in vat

Voila, 4 liter.
Gebruikersavatar
parsifal
Berichten: 10231
Lid geworden op: 09 jan 2002, 10:15
Locatie: Zuidhorn

Bericht door parsifal »

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.
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.

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?
Gebruikersavatar
Kaw
Berichten: 5448
Lid geworden op: 07 jun 2003, 08:42
Contacteer:

Bericht door Kaw »

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.
Gebruikersavatar
parsifal
Berichten: 10231
Lid geworden op: 09 jan 2002, 10:15
Locatie: Zuidhorn

Bericht door parsifal »

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.
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).
Plaats reactie