Pagina 4 van 12

Geplaatst: 16 mar 2006, 12:03
door Pim
Memento,

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

Geplaatst: 16 mar 2006, 12:10
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;

Geplaatst: 16 mar 2006, 12:24
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;

Geplaatst: 16 mar 2006, 12:26
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.

Geplaatst: 16 mar 2006, 12:30
door rekcor
Kijk zo leren we nog eens wat. Refo, een nieuw raadsel?

Geplaatst: 16 mar 2006, 13:34
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.

Geplaatst: 16 mar 2006, 13:38
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? ;)

Geplaatst: 16 mar 2006, 13:40
door parsifal
1 keer wegen met 1 uit zak 1, 2 uit zak 2, 3 uit zak 3 enz op de weegschaal.

Geplaatst: 16 mar 2006, 13:44
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?

Geplaatst: 16 mar 2006, 16:50
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? ;-)

Geplaatst: 17 mar 2006, 09:27
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.

Geplaatst: 17 mar 2006, 09:41
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.

Geplaatst: 17 mar 2006, 09:58
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?

Geplaatst: 17 mar 2006, 10:09
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.

Geplaatst: 17 mar 2006, 10:10
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).