Решение распространенной (на первый взгляд) статистической задачи

Я шел из паба со своей командой, и у меня был жаркий спор о самых разных вещах, во время которого один парень задал вопрос, который, по-видимому, является обычной статистической проблемой:

«Здесь 50 дверей, а за одной только сокровище. Вы можете выбрать любую дверь; Остальные 48 дверей я уберу без сокровища. Итак, у вас останется ваша дверь и еще одна, вы знаете, одна из них должна спрятать сокровище. Теперь вы можете изменить свой выбор. Не могли бы вы изменить его?»

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

Мои мысли об этом в данный момент

В то время как мой первоначальный выбор имеет только 2%-й шанс, второй выбор, независимо от того, изменю я его или нет, дает 50%-й шанс сделать его правильным. Логика, которой я следовал, похожа на подбрасывание монеты — шанс выпадения «орла» всегда составляет 50%, независимо от того, каким был предыдущий подбрасывание, но этот пример не так похож, как я думал. Каждый бросок монеты — это несвязанное событие. Это не продолжение предыдущего, и я ошибочно предположил, что здесь то же самое.

Я слишком долго не думал обо всей этой проблеме и вскоре забыл о ней… но наступили выходные, и она вернулась ко мне бумерангом.

Поговорим о бумеранге

Пока я пишу эти слова, я еще не знаю ответа, и не хочу искать его в интернете — я хочу узнать его сам.

Почему я теперь думаю, что мой ответ неверен?

За исключением того, что мне сказали, что это неправильно :)

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

Примечание. Я только что прочитал то, что написал до сих пор, и я почти уверен, что это будет 2% против 50%, и внесение изменений — это правильно.

Я обратился к некоторому коду JavaScript, чтобы помочь мне.

Решение проблемы с помощью кода

Я написал простую функцию, которая будет выполняться 100 000 раз. Один запуск без изменения ответа, а другой с другим выбором двери меняется при второй возможности. У первого должно быть около 2% успеха, а у второго около 50%. Конечно, поскольку эти прогоны генерируют случайные числа, результат не будет идеальным, но с таким количеством итераций он будет чертовски близок.

Я сделал код простым, без каких-либо ярлыков, чтобы было легко следовать ему. Вы можете запустить его в браузере и настроить SHOULD_SWAP на true, если хотите изменить ответ при второй возможности. Вы можете поиграть с другими переменными, такими как количество проходов или количество дверей, чтобы увидеть, к каким результатам это приведет.

const RUNS = 100000;
const DOORS = 50;
const SHOULD_SWAP = false;

let allDoors = [];
let myChoice = null;
let otherDoors = null;

let result = [];
let accuracy = null;

function chooseDoors() {
  // generate 50 doors, and make one treasure (true)
  allDoors = Array(50).fill(false);
  allDoors[Math.floor(Math.random() * DOORS)] = true;

  // choose one door and eliminate remaining except 1
  let selectedDoorsIndex = Math.floor(Math.random() * DOORS);
  myChoice = allDoors[selectedDoorsIndex].toString();

  // I don't have to chop the array, it's easy to figure out what the "otherDoors" will be
  if (myChoice === 'false') {
    otherDoors = 'true'
  }
  else {
    otherDoors = 'false'
  }

  // swap the answer at second chance?
  if (SHOULD_SWAP) {
    myChoice = otherDoors;
  }

  result.push(myChoice);
}

// run X times
for (let i = 0; i < RUNS; i++) {
  chooseDoors();
} 

// calculate the final %
let trues = 0;
for (let item in result) {
  if (result[item] === 'true') {
    trues++;
  }
}
accuracy = trues / RUNS * 100;

console.log(accuracy.toString() + '%');

Вывод (не то, что я думал!)

Я спросил нескольких человек об ответе, и большинство ответило: 2 %, если я не изменю свой ответ, и 50 %, если изменю. Несколькими абзацами ранее я тоже это говорил!

Очень интересно узнать, что это 2% и 98%!
ЭТО СМЫСЛО… СЕЙЧАС! Конечно, это будет 98! 😂

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

Это напоминает мне исследования об изменении нашего мнения и о том, как часто люди остаются при своем первоначальном выборе, полагая, что он должен быть лучшим. Страх сожаления настолько силен, что влияет на наше логическое мышление. Будем честны; эмоции контролируют нас чаще, чем мы хотим верить. Мы боимся того, что произойдет, если мы передумаем при второй возможности, но наша дверь скрывает сокровище. Классика «Я так и знала! Я знал, что должен придерживаться своей двери!» … и в 2% случаев это было бы правдой :)

Соревнование завершено. Это было весело :)