Харьков Форум Реклама на форуме
  Харьков Форум > Харків > Головний

Старий 17.11.2004, 14:31   #101
Lyuda
 
Аватар для Lyuda
 
Реєстрація: 23.11.2003
Адреса: Харьков
Дописів: 982
 
Да, выложи пожалуйста, мы и тебе ошибки покажем.


    Вгору
Старий 17.11.2004, 15:16   #102
Lyuda
 
Аватар для Lyuda
 
Реєстрація: 23.11.2003
Адреса: Харьков
Дописів: 982
 
Если интересно - это мой вариант (на паскале):

program Koza;
uses crt;

var
i,n,car,opdoor,gamer,win:integer;
begin
n:=1;
win:=0;
while n<100 do
begin
i:=1;
car:=random(3)+1;
gamer:=random(3)+1;
while (car=i) or (gamer=i) do i:=i+1;
opdoor:=i;
i:=1;
while (i=opdoor) or (i=gamer) do i:=i+1;
if i=car then win:=win+1;
n:=n+1;
end;
writeln(win);
writeln(n);
readln;
end.


    Вгору
Старий 18.11.2004, 00:03   #103
eugene_sh
 
Реєстрація: 13.11.2004
Дописів: 19
Повторюсь:

Есть три двери, одну мы выбрали, вероятность для каждой двери 1/3. Теперь есть две группы дверей -- выбранные и невыбранные, все двери закрыты, в первой группе 1 дверь, следовательно вероятность 1/3, во второй -- 2 двери и вероятность 2/3. Теперь ведущий открывает одну дверь, она обязательно находится во второй группе, т.к. он не может открыть нашу дверь, во второй группе теперь одна дверь, но количество машин в группах (0 или 1) не изменилось, следовательно вероятность так и осталась для первой группы 1/3, а для второй -- 2/3. Рассматривайте группы как единое целое, пока не важно, сколько в них дверей. Теперь в первой группе одна ВЫБРАННАЯ дверь, во второй одна невыбранная, вероятность 1/2 и 2/3, следовательно нужно менять свой выбор.
Достаточно простой и 100% доказанный ответ!

ЧТО ВАМ НЕ НРАВИТСЯ??? Высказывайте свои предположения.

Чтобы не быть хуже других, я даже потратил несколько минут на создание программы, правда после того, как сам доказал. Вот она:

#define N 1000000.0
randomize();
int correct=0;
for(int i=0;i<N;i++)
{
int car=random(3)+1,selected=random(3)+1,open;
do open=random(3)+1; while(open==car || open==selected);
if(selected==car)correct++;
}
Caption=AnsiString(correct/N*100.0)+"% / "+((N-correct)/N*100.0)+"% -from "+N;

Все это для C++Builder'а, для MSVC лень писать.
Кстати, в результате 33,(3) и 66,(6), как и должно быть!
А вот программа, выполняющая то же самое:

#define N 1000000.0
randomize();
int correct=0;
for(int i=0;i<N;i++)if(random(3)==random(3))correct++;
Caption=AnsiString(correct/N*100.0)+"% / "+((N-correct)/N*100.0)+"% -from "+N;

ДЕЛАЙТЕ ВЫВОДЫ!!!

PS Nickie, твоя программа по определению не может работать!
Lyuda, искать ошибки в коде Nickie глупо, там весь код -- сплошная ошибка! Я это уже понял.


    Вгору
Старий 18.11.2004, 01:06   #104
Dimoks
Админ
 
Аватар для Dimoks
 
Реєстрація: 14.08.2003
Адреса: Харьков
Дописів: 75261
 
Цитата:
Допис від Lyuda
Да, выложи пожалуйста, мы и тебе ошибки покажем.
посмотрим!

еще раз повторю что программа *****! т.е. написано тупо.
не потому что я *****. я мог написать и в 5 строк как вы.
просто
1. было очень поздно
2. я лет 7-8 не видел в глаза турбо поскаль
3. и я хотел по полочкам разложить чтобы во всем разобратся.

итак:

===================================================

Program koza;
Var
i, dver_s_mahinoy, vibor_igroka, otkritaya_dver, veduhiy, kolvo_pobed : integer;
Begin

kolvo_pobed:=0;

for i:=1 to 10000 do
begin



dver_s_mahinoy:=random(3)+1; { Вероятность 1/3. Это машина }
vibor_igroka:=random(3)+1; { Вероятность 1/3. Это выбор игрока }




{ а теперь все возможные 9 вариантов без алгоритмов! просто условия }


if (dver_s_mahinoy=1) and (vibor_igroka=1) then
begin
veduhiy:=random(2)+1; { Вероятность 1/2 это выбор ведущего при условии что Игрок сразу угодал где машина }
if veduhiy=1 then otkritaya_dver:=2;
if veduhiy=2 then otkritaya_dver:=3;
end;
if (dver_s_mahinoy=1) and (vibor_igroka=2) then otkritaya_dver:=3;
if (dver_s_mahinoy=1) and (vibor_igroka=3) then otkritaya_dver:=2;


if (dver_s_mahinoy=2) and (vibor_igroka=1) then otkritaya_dver:=3;
if (dver_s_mahinoy=2) and (vibor_igroka=2) then
begin
veduhiy:=random(2)+1; { см. выше }
if veduhiy=1 then otkritaya_dver:=1;
if veduhiy=2 then otkritaya_dver:=3;
end;
if (dver_s_mahinoy=2) and (vibor_igroka=3) then otkritaya_dver:=1;

if (dver_s_mahinoy=3) and (vibor_igroka=1) then otkritaya_dver:=2;
if (dver_s_mahinoy=3) and (vibor_igroka=2) then otkritaya_dver:=1;
if (dver_s_mahinoy=3) and (vibor_igroka=3) then
begin
veduhiy:=random(2)+1; { см. выше }
if veduhiy=1 then otkritaya_dver:=1;
if veduhiy=2 then otkritaya_dver:=2;
end;




{ В следующих 6 строках игрок всегда меняет свой выбор на др дверь }

if (otkritaya_dver=1) and (vibor_igroka=2) then vibor_igroka:=3;
if (otkritaya_dver=1) and (vibor_igroka=3) then vibor_igroka:=2;

if (otkritaya_dver=2) and (vibor_igroka=1) then vibor_igroka:=3;
if (otkritaya_dver=2) and (vibor_igroka=3) then vibor_igroka:=1;

if (otkritaya_dver=3) and (vibor_igroka=1) then vibor_igroka:=2;
if (otkritaya_dver=3) and (vibor_igroka=2) then vibor_igroka:=1;

{ надеюсь вам не надо объяснять почему не возможен вариант otkritaya_dver=1 and vibor_igroka=1 ?
т.к. это видно из программы выше, т.е. открытая дверь всегда не та что выбрал игрок вначале }


if vibor_igroka=dver_s_mahinoy then kolvo_pobed:=kolvo_pobed+1;

writeln(i,' igr. Kol-vo pobed = ', kolvo_pobed);


End;
readLn;
End.


===================================================

Где ошибка?
Могу выложить результат этой программы.
Результат программы напомню ~ 1/2
т.е. 50% выгреша если игрок меняет свой первоночальный выбор


__________________
На свете много дорог, каждая найдёт своего путника (с) Китайская пословица
      Вгору
Старий 18.11.2004, 01:29   #105
Dimoks
Админ
 
Аватар для Dimoks
 
Реєстрація: 14.08.2003
Адреса: Харьков
Дописів: 75261
 
в программе выше ошибка!
внизу уже разобрались.


__________________
На свете много дорог, каждая найдёт своего путника (с) Китайская пословица

Востаннє редагував Dimoks: 18.11.2004 о 10:14
      Вгору
Старий 18.11.2004, 01:35   #106
Dimoks
Админ
 
Аватар для Dimoks
 
Реєстрація: 14.08.2003
Адреса: Харьков
Дописів: 75261
 
ааааааааааааа

позор на мою седую голову!!!

стормозил конкретно!

действительно 66 % получается!


__________________
На свете много дорог, каждая найдёт своего путника (с) Китайская пословица

Востаннє редагував Dimoks: 18.11.2004 о 01:42
      Вгору
Старий 18.11.2004, 02:05   #107
Drema
 
Аватар для Drema
 
Реєстрація: 6.09.2003
Адреса: Kharkov
Дописів: 5416
 
Эх, елки палки... ) а я то копался в чужом коде....

Ели сам догадался.

пусть dver_s_mahinoy=1, vibor_igroka=1
Путем случайного выбора
otkritaya_dver=2

и теперь приходим к твоим условиям:
if (otkritaya_dver=2) and (vibor_igroka=1) then vibor_igroka:=3;
// делает vibor_igroka=3
// а теперь ВНИМАНИЕ!! следующим условием обратно меняем дверь!
if (otkritaya_dver=2) and (vibor_igroka=3) then vibor_igroka:=1;
//и снова vibor_igroka=1

то есть надо в этом случае (чур меня..) GOTO использовать или тот же цикл и break.



Востаннє редагував Drema: 18.11.2004 о 02:07
    Вгору
Старий 18.11.2004, 10:34   #108
Dimoks
Админ
 
Аватар для Dimoks
 
Реєстрація: 14.08.2003
Адреса: Харьков
Дописів: 75261
 
Цитата:
Допис від Drema
и теперь приходим к твоим условиям:
if (otkritaya_dver=2) and (vibor_igroka=1) then vibor_igroka:=3;
// делает vibor_igroka=3
// а теперь ВНИМАНИЕ!! следующим условием обратно меняем дверь!
if (otkritaya_dver=2) and (vibor_igroka=3) then vibor_igroka:=1;
//и снова vibor_igroka=1

то есть надо в этом случае (чур меня..) GOTO использовать или тот же цикл и break.
никаких goto! чур меня тоже. и циклов не надо.
ты не дочитал форум Esc уже написал что тут ошибка.
я исправил. все работает.
итак веротность 66%


__________________
На свете много дорог, каждая найдёт своего путника (с) Китайская пословица

Востаннє редагував Dimoks: 18.11.2004 о 10:52
      Вгору
Старий 18.11.2004, 11:28   #109
Dimoks
Админ
 
Аватар для Dimoks
 
Реєстрація: 14.08.2003
Адреса: Харьков
Дописів: 75261
 
http://www.cinemashots.com/game/



__________________
На свете много дорог, каждая найдёт своего путника (с) Китайская пословица
      Вгору
Старий 18.11.2004, 11:44   #110
Lyuda
 
Аватар для Lyuda
 
Реєстрація: 23.11.2003
Адреса: Харьков
Дописів: 982
 
Ура!!!!! Справедливость восторжествовала!!!!


    Вгору
Старий 27.02.2011, 12:33   #111
Марія Мрія
 
Аватар для Марія Мрія
 
Реєстрація: 6.11.2009
Адреса: Харьков
Дописів: 219
 
Цитата:
Допис від Esq
Независимо от изначального выбора найдется невыбранная дверь (как минимум одна) с козой. Такая дверь открывается. После этого шансы нзавать дверь с машиной 1/2 независимо от того, стоять ли первоначальном выборе или изменить его. Так что все равно как поступать, шансы назвать дверь с машиной - 50%.
+1


    Вгору
Старий 27.02.2011, 12:53   #112
Mironchik
 
Аватар для Mironchik
 
Реєстрація: 28.08.2010
Адреса: Neverhood
Дописів: 25509
 
...



Востаннє редагував Mironchik: 27.02.2011 о 14:19
    Вгору
Старий 27.02.2011, 13:51   #113
Jon
 
Реєстрація: 3.12.2005
Адреса: Купертино, Калифорния
Дописів: 67
 
Кстати очень интересная задачка. Можно добавить голосовалку и посмотреть сколько человек надевают трусы через голову.

Прочитал почти всю тему, понимаю все описанные аргументы, но... поймите, нет разницы, какой выбор Вы делаете первый раз. После этого выбора Вам машину все равно не дадут. Его в расчеты включать не нужно, он на результат не влияет. Итоговый выбор, который опеределяет получите ли Вы приз, состоит всего из двух пунктов.

(грубо говоря, вас изначально просят на трехгранной монетке отметить сторону "решки", потом убирают одну грань и на оставшейся чеканят орла. Бросайте монетку.)


    Вгору
Старий 27.02.2011, 15:16   #114
Nesh05
 
Реєстрація: 11.12.2007
Адреса: Харьков
Дописів: 185
 
Цитата:
Допис від Jon

Прочитал почти всю тему, понимаю все описанные аргументы, но... поймите, нет разницы, какой выбор Вы делаете первый раз. После этого выбора Вам машину все равно не дадут. Его в расчеты включать не нужно, он на результат не влияет. Итоговый выбор, который опеределяет получите ли Вы приз, состоит всего из двух пунктов.
Есть большая разница какой выбор сделан в первый раз, так как после этого у ведущего остается либо две двери с козами для
открывания любой из них, если сразу выбрана машина (шанс 1 к 3), либо только одна с козой и открыть он может только ее, если изначально выбрана дверь с козой (шанс 2 к 3), то есть с вероятность 2 к 3 за не открытой и не выбранной дверью машина.


    Вгору
Старий 27.02.2011, 15:29   #115
Jon
 
Реєстрація: 3.12.2005
Адреса: Купертино, Калифорния
Дописів: 67
 
а вы решайте задачу относительно себя, как игрока, а не относительно ведущего.

Кстати, в покере люди часто ошибаются именно из-за того что шансы считают относительно чего угодно, кроме своей руки и текущей ставки.


    Вгору
Старий 27.02.2011, 15:33   #116
Nesh05
 
Реєстрація: 11.12.2007
Адреса: Харьков
Дописів: 185
 
Хм.. а как ее вообще можно решать со стороны ведущего, если он точно знает где машина и перед ним никакой задачи нет?


    Вгору
Старий 27.02.2011, 15:49   #117
Jon
 
Реєстрація: 3.12.2005
Адреса: Купертино, Калифорния
Дописів: 67
 
Разделим на этапы:
1. мы выбираем одну из трех дверей (шанс на выигрыш 0 из 3);
2. ведущий открывает одну из дверей с козой (шанс на выигрыш 0 из 2);
3. мы окончательно выбираем дверь. (шанс на выигрыш 1 из 2)


    Вгору
Старий 27.02.2011, 16:54   #118
alessandro
 
Аватар для alessandro
 
Реєстрація: 22.05.2008
Адреса: Временно не уехавший
Дописів: 1286
 
Цитата:
Допис від Jon
Разделим на этапы:
1. мы выбираем одну из трех дверей (шанс на выигрыш 0 из 3);
2. ведущий открывает одну из дверей с козой (шанс на выигрыш 0 из 2);
3. мы окончательно выбираем дверь. (шанс на выигрыш 1 из 2)
Хотя б погуглил прежде чем показывать свою необразованность.
http://ru.wikipedia.org/wiki/Парадокс_Монти_Холла


    Вгору
Старий 28.02.2011, 01:00   #119
Jon
 
Реєстрація: 3.12.2005
Адреса: Купертино, Калифорния
Дописів: 67
 
Я вроде доступно показал, где находится камень преткновения. Не в цифрах он, а в построении решения.
Я могу доказать, что 2*2=5, но это не изменит таблицу умножения.


    Вгору

Параметри теми Пошук у темі
Пошук у темі:

Розширений пошук

Харьков Форум > Харків > Головний

Швидкий перехід



© 2003–2021, kharkovforum.com