%% D?ra til lykke - en klassiker (Monty Hall-problemet) % Spill med programleder og deltaker. % Tre d?rer: 1, 2 og 3. % Premie bak en av d?rene % Programlederen vet hvor premien er! % Prosedyre: % 1) deltakeren velger en av d?rene, men ?pner den IKKE % 2) programlederen ?pner en av de gjenv?rende d?rene hvor han/hun vet % det IKKE er premie % 3) deltakeren f?r valget mellom ? opprettholde sitt valg eller velge % den siste d?ra % Sp?rsm?l: % Spiller det noen rolle, sannnsylighetsmessig, hva deltageren gj?r i % 3? I s?fall, hva b?r han/hun gj?re og hva er sannsynligheten for % gevinst? n = 10; % antall ganger vi skal spille "D?ra til lykke" antall_dorer = 3; % antall d?rer i spillet % Vi lagrer antall ganger vi vinner (og taper) antall_vunnet = 0; % antall ganger du vinner spillet antall_tap = 0; % antall ganger du taper spillet for i = 1:n premie_er_bak_dor = randi(antall_dorer, 1); % Trekk hvilken d?r premien er bak deltaker_gjetter = randi(antall_dorer,1); % Trekk hvilken d?r deltakeren gjetter % Vi bytter alltid d?r etter at programlederen har ?pnet en uten % gevinst. Vi teller deretter opp antall ganger vi vinner (og taper). if deltaker_gjetter == premie_er_bak_dor antall_tap = antall_tap + 1; disp('Du vant en geit'); else antall_vunnet = antall_vunnet + 1; disp('Du vant en bil') end pause(.5) end disp(['Estimert vinnersannsynliget: ' , num2str(antall_vunnet / n * 100), '%.']); %% Vi kan selvsagt lage dette som en funksjon av n og antall d?rer n = [10 20 50 75 100 150 200 300 500]; % antall ganger vi spiller d = 3; % antall d?rer l = length(n); % antall fors?k andel_vunnet = zeros(l, 1); for i = 1:l andel_vunnet(i) = Monty_Hall_funksjon(n(i), d) / n(i); % beregn andel vunnet end figure; plot(n, andel_vunnet ); xlabel('Antall ganger vi spiller'); ylabel('Andel vunnet') xlim([1 n(end)]); ylim([0 1]); hold on if d == 3 plot([n(1) n(end)], [2/3 2/3], 'r-.' ); legend('Estimert sannsynlighet', 'Sann sannsynlighet') end