Ruby로 Motihall 문제를 검증했는데 잘 이해가 안 되는 말들을
7971 단어 Ruby
몬테틸의 문제는 무엇입니까?
몬티홀 문제는 직감적으로 이해할 수 없는 확률 문제다.
인터넷을 찾아봐도 불쾌해서 스스로 검증해 보기로 했다.
사이트 축소판 그림 개요도 알 수 있지만 이 페이지에 조금 설명해 주세요.
질문 개요
상자를 선택하는 단계에서 빈 상자를 열 수 있습니다.
이후 선택한 상자가 바뀔 수 있을 때 바꾸지 않는 것을 선택하는 것이 비교적 수지가 맞는 문제다.
상자 1
상자2
상자 3
균등하다
허사가 되다
허사가 되다
예를 들어 위와 같이 상자 3개에서 상자 2개(아직 열리지 않음)를 선택했고, 게임의 주최자는 열리지 않은 상자를 열었다.
상황을 보면 다음과 같다
상자 1
상자2
상자 3
균등하다
허사가 되다
허사가 되다
선택 중
OPEN
상자 3이 벗어났다는 것을 알았을 때 선택을 변경할 수 있습니까?이 문제는
직감적으로
当たり or はずれ
의 두 가지 선택이기 때문에 어느 것을 선택하든 변하지 않는다. 수학적으로 이렇다.원형을 유지하다
옵션 변경
당첨 확률
33%
67%
이걸 처음 봤을 때'정말 바보구나...'
해설을 봤자 완전히 이해가 안 되기 때문에 프로그래밍으로 검증하면 이해가 안 되기 때문에 해설을 한다.
(하지만 결과적으로 새로운 수수께끼가 늘었다)
지금 인코딩 확인
Ruby를 사용하여 검증합니다.
(팩스를 조금 더 보내도 되지만 조금 더 쉽게 이해할 수 있도록 지루하게 쓴 부분도 있다. 그래도 이해하기 어려울 것 같다...웃음)
코드
ruby
# 試行回数(100万回くらいやれば十分でしょ)
number = 1_000_000
# 当たりとはずれを用意
win = 1
lose = 0
# 箱を用意
boxes = [win, lose, lose]
# ケース1(選択肢を変更しない場合)
count = 0
number.times do
# ランダムでどの箱を選ぶか決定
random_number = [0, 1, 2].sample
selected_box = boxes[random_number]
# はずれの箱を開ける(次に選択肢を変更しないのでこの処理は特に意味がない)
random_number != 2 ? boxes.delete_at(2) : boxes.delete_at(1)
# 選んだ箱のままで当たりかどうか判定
count += 1 if selected_box == win
end
# 確率の計算
prob_1 = (count.to_f / number.to_f).round(5) * 100
puts "選択肢を変更しない場合の確率: #{prob_1}%"
# ケース2(選択肢を変更する場合)
count = 0
number.times do
# 箱を選択
random_number = [0, 1, 2].sample
selected_box = boxes[random_number]
# はずれの箱を開けて選んだ箱を変更
if random_number == 0
boxes.delete_at(2)
selected_box = boxes[1]
elsif random_number == 1
boxes.delete_at(2)
selected_box = boxes[0]
else
boxes.delete_at(1)
selected_box = boxes[0]
end
# 判定
count += 1 if selected_box == win
end
# 確率の計算
prob_2 = (count.to_f / number.to_f).round(5) * 100
puts "選択肢を変更した場合の確率: #{prob_2}%"
결실
파일의 실행 결과입니다.
나는 확실히 직감이 틀렸다는 것을 안다
잠깐 설명 좀 해주세요.
루비로 이 문제를 해결해 본 다음 자신이 그렇다고 생각하는 것을 설명해 보세요.
요점은 처음 선택한 옵션에 따라 구분된다
상자를 선택할 때 편리한 상자를 알려주기 때문에 이 문제는 다음과 같은 두 가지 상황으로 나눌 수 있다.
첫 번째 상자를 선택할 확률
먼저 빗나간 상자를 선택할 확률
33%
67%
그럼 지금부터 선택의 변화와 변함없는 이야기를 나눠보도록 하겠습니다.
선택 항목 변경 안 함
만약 선택 항목을 바꾸지 않는다면, 반드시 먼저 상응하는 상자를 선택해야 한다.
원래 뽑을 확률이 33%인데 이 상황에서 뽑을 확률이 33%예요.
선택 항목 변경
선택 항목을 변경할 때 처음부터 조건에 맞는 상자를 선택하면 빗나가고 잘못 선택하면 당첨된다.
최종 목표 달성을 위해서는 먼저 목표에서 벗어난 상자를 선택해야 한다는 것이다.
처음에 편차를 선택할 확률은 67%이기 때문에 이런 상황에서 편차를 줄일 확률은 67%이다
약간 의문이 있다
해설은 여기까지 했지만 쓰는 과정에서도 의문이 제기됐다.
빈 상자가 열리는 동안 다른 참가자들이 왔죠.
このとき、別の参加者から見たらどちらの箱が当たりかどうかは五分五分では?
이 의문을 떠올리면 좋지만 잘 설명할 수는 없으니 수학에 대해 잘 아는 사람이 있으면 꼭 메시지를 남겨주세요.지식에 따라 확률이 바뀌는 신비한 현상이죠
반은 받아들일 수 있고 반은 받아들일 수 없어...
최후
애매모호하게 끝났지만 흥미로운 질문이야!
몬테홀 문제는 간단하지만 심오하네요~
Reference
이 문제에 관하여(Ruby로 Motihall 문제를 검증했는데 잘 이해가 안 되는 말들을), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koki_73/items/1388491f30b8fc658284텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)