Реализации алгоритмов/Парадокс Монти Холла: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 470:
== Программа на [[w:Turbo Pascal|Turbo Pascal]], моделирующая задачу ==
 
Программа подсчитывает вероятность выигрыша в случае смены двери. Производится n попыток. Результат работы — 66 %.
<pre>
function montey : boolean;
Строка 499 ⟶ 500 :
end.
</pre>
 
Программа подсчитывает вероятность выигрыша в случае смены двери. Производится n попыток. Результат работы — 66 %.
Дополненный код позволяет моделировать [http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%BE%D0%BA%D1%81_%D0%9C%D0%BE%D0%BD%D1%82%D0%B8_%D0%A5%D0%BE%D0%BB%D0%BB%D0%B0#.D0.A0.D0.B0.D0.B7.D0.B2.D0.B8.D1.82.D0.B8.D0.B5_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87.D0.B8_.D0.9C.D0.BE.D0.BD.D1.82.D0.B8-.D0.A5.D0.BE.D0.BB.D0.BB.D0.B0_.28.D0.9F.D0.B0.D1.80.D0.B0.D0.B4.D0.BE.D0.BA.D1.81_.D0.A3.D0.B2.D0.BB.D1.91.D0.BA.D1.88.D0.B5.D0.B3.D0.BE.D1.81.D1.8F_.D0.92.D0.B5.D0.B4.D1.83.D1.89.D0.B5.D0.B3.D0.BE.29 парадокс Увлёкшегося Ведущего]:
<pre>
function montey(var m, w : longint) : boolean;
var
f, c, o : byte;
d : array [0..2] of boolean;
begin
f := random(3);
for c := 0 to 2 do
d[c] := f = c;
c := random(3);
repeat
o := random(3);
until (not d[o]);
if (c = o) then
montey := random(2) = 1
else
begin
inc(m);
if d[3 - c - o] then inc(w);
montey := d[3 - c - o];
end;
end;
 
const
n = 10000000;
var
i, k, m, w : longint;
begin
randomize;
for i := 1 to n do
if montey(m, w) then
inc(k);
writeln(k * 100 / n : 5 : 2);
writeln(m * 100 / n : 5 : 2);
write(w * 100 / m : 5 : 2);
readln;
end.</pre>
Дополнительные счётчики: m — число попыток, в которых возможно изменить предварительный выбор двери, как в задаче Монти Холла (когда ведущий и игрок указали на разные двери); w — число выигрышей с использованием стратегии смены двери в таких случаях.
В случае, когда ведущий и игрок называют одну дверь, выбор из двух оставшихся моделишуется простейшим генератором двух равновероятных событий (random(2) = 1).
Результаты работы программы: «ситуации Монти Холла» — 66 %, вероятность выигрыша в них — 50 %, вероятность выигрыша вообще — 50 %.
 
== Программа на [http://ru.wikipedia.org/wiki/Delphi_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) Delphi] ==