Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2009, 12:35   #31
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Интересно откуда мы знаем, что она именно неправильная?
М.б. я неточно выразился. Скажем так: "Вероятность того, что она неправильная 99%" (Если бы сразу открыли эту дверь, то 99 к 100, что мы проиграли).
alexBlack вне форума Ответить с цитированием
Старый 01.03.2009, 14:21   #32
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Так, ну вот и я припёрся

Не меняя выбор вероятность найти машину - 33%
Меняя - 66%

Кидаем на форму 2 label и кнопку, назначаем события onCreate, OnClick
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
const TestCount = 100000; //количество тестов
      Doors = 3; //количество дверей (>2 а то зациклится)

var   avto,               //дверь с авто
        koza,               //дверь с точно козой (открытая)
        select,             //выбор игрока
        oldselect: byte;
        i, result: integer;
begin
  // ================= Не меняя выбора =================
  result := 0;

  for i:=1 to TestCount do
  begin
    avto   := random(Doors) + 1;           //машина за случайной дверью 1..doors
    select := random(Doors) + 1;           //выбираем случайно
    if select = avto then inc(result); //угадали?
  end;

  label1.Caption := format('Не меняя выбора угадано %u из %u (%f%%)',
                          [result, testcount, (result/testcount)*100]);

  // ================= Меняя выбор =================
  result := 0;

  for i:=1 to TestCount do
  begin
    avto   := random(Doors) + 1;           //машина за случайной дверью
    select := random(Doors) + 1;           //выбираем случайно

    //Ведущий открывает дверь с козой (НЕ с машиной и НЕ выбранную нами)
    Repeat
      koza := random(Doors) + 1;
    Until (koza <> avto) and (koza <> select);

    //Выбираем НЕ дверь с козой(открытую) и НЕ выбранную ранее
    oldselect := select;
    Repeat
      select := random(Doors) + 1;
    Until (select <> koza) and (select <> oldselect);

    if select = avto then inc(result); //угадали?
  end;

  label2.Caption := format('Меняя выбор угадано %u из %u (%f%%)',
                          [result, testcount, (result/testcount)*100]);
end;
Фишка вот в этом:
Цитата:
Сначала вы должны выбрать одну из дверей. После этого я открою одну из оставшихся дверей, за которой находится коза
Кстати вероятность угадать автомобиль меняя выбор сохраняется и при увеличении количества дверей - при 100 вероятность на 0.01 больше, тока количество опытов надо увеличивать чтоб это было ясно заметно
пыщь

Последний раз редактировалось JTG; 01.03.2009 в 14:39.
JTG вне форума Ответить с цитированием
Старый 01.03.2009, 14:38   #33
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,672
По умолчанию

JTG, да в рамках конкретной задачи частота выпадания автомобиля при смене двери 66 процентов.

Это очевидно, также очевидно что никакого второго выбора нет. В этом можно убедиться получив вероятность в 50 процентов делая тот самый случайный выбор из двух дверей
Alar вне форума Ответить с цитированием
Старый 01.03.2009, 15:14   #34
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Хм... Вы пытаетесь посчитать по формуле полной вероятности чтоли?
Да вы что..... События ж независимые... И следовательно вероятность = 0.5
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 01.03.2009, 15:30   #35
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Хм... Вы пытаетесь посчитать по формуле полной вероятности чтоли?
Да вы что..... События ж независимые... И следовательно вероятность = 0.5
А с чего вы решили, что они независимые?

Скажу по-другому:
Если вы будете рассматривать эти события как независимые, то и вероятность вашего выигрыша будет =50%.
А если рассматривать их как одно и всегда менять выбор, то шансы выиграть будут 66%.

Т.к. теория верна по закону больших чисел, то и реально увидеть ее в действии можно только рассматривая большое количество экспериментов (в чем вам поможет одна из приведенных в этой теме программ). Но это вовсе не значит, что она не работает при рассмотрении единичных случаев.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 01.03.2009 в 15:32.
Sazary вне форума Ответить с цитированием
Старый 01.03.2009, 15:33   #36
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Если вы будете рассматривать эти события как независимые, то и вероятность вашего выигрыша будет =50%.
А если рассматривать их как одно и всегда менять выбор, то шансы выиграть будут 66%.
Ну с этим я согласен...

Но с чего вы-то решили, что они зависимые?

Может весь парадокс в том, зависят ли эти события?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 01.03.2009, 15:39   #37
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Но с чего вы-то решили, что они зависимые?
Лично для меня это очевидно (также, как, видимо, для Вас очевидна их независимость).

Цитата:
Может весь парадокс в том, зависят ли эти события?
Парадоксом это зовется именно потому, что для большинства людей эта теория противоречит здравому смыслу.

Цитата:
Ну с этим я согласен...
Тогда не совсем понятно, что вам не нравится в этой теории )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 01.03.2009, 16:49   #38
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Сначала было три двери и вероятность угадать была 1/3... Но ведь потом одну из дверей исключили из опыта, и вероятность стала 1/2...
Предлагаю другую дверь ведущий не вносит никакой дополнительной информации...
Цитата:
для большинства людей эта теория противоречит здравому смыслу
Тогда это уже не парадокс... Парадокс - противоречие фактов...


А вообще у меня есть знакомый специалист по Теории Вероятности...
Через 3-4 дня напишу мнение профессионалов по этому "Монти Холлу".....
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 01.03.2009, 18:58   #39
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

События независимые - потому что вы с первой двери не можете выиграть автомобиль. Выиграть вы можете только со второй двери. То есть первый выбор - ни к чему не приводит. При любых возможных вариантах - после первого выбора двери - мы получим две двери - с автомобилем и с козой. Следовательно, вероятность выиграть не меняется. От того, что мы узнаем где была одна из коз - вероятность выиграть не увеличится и не уменьшится.

Если вы мне не верите - давайте пойдем от противного.
Допустим события зависимые. Тогда возникает вопрос - "Каким образом первое событие влияет на второе?". У нас с самого начала есть два выбора. Одну дверь в любом случае ведущий откроет. И за ней в любом случае будет коза. Следовательно наш выбор - между двумя оставшимися. Следовательно за каждой из двух оставшихся дверей с вероятностью в 50% может быть как машина, так и коза.
MaTBeu вне форума Ответить с цитированием
Старый 01.03.2009, 19:09   #40
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от MaTBeu
От того, что мы узнаем где была одна из коз - вероятность выиграть не увеличится и не уменьшится.
Именно! Не изменится. Как была 33%, так и останется. Поэтому и нужно выбирать другую дверь.

MaTBeu, Посмотрите мой пост #35:
Цитата:
Если вы будете рассматривать эти события как независимые, то и вероятность вашего выигрыша будет =50%.
А если рассматривать их как одно и всегда менять выбор, то шансы выиграть будут 66%.
Назовем это тактикой (/принципом/стратегией).
Если после открытия одной из дверей делать выбор случайно (рассматривая задачу как 2 подзадачи), то вероятность выигрыша - 50%.

Но если всегда менять выбор, то вероятность будет 66%. И это и демонстрируют приведенные программы.

Цитата:
Тогда возникает вопрос - "Каким образом первое событие влияет на второе?".
Таким, что при первом выборе вероятность выбора козла - 66%.
А после открытия двери (второго события), как вы правильно сказали, шансы остаются прежними, т.к. мы по-прежнему не знаем где машина.

Но вероятность того, что мы выбрали козла - 66%, а дверь со вторым козлом уже открыта. А значит вероятность нахождения машины за оставшейся - 66%.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прописать алиас в коде проги(компонента TABLE, бд парадокс) sashaslam БД в Delphi 2 07.07.2008 13:42