作者:Thomas Hanning,原文鏈接躯嫉,原文日期:2015-09-27
譯者:SergioChan壶唤;校對(duì):numbbbbb;定稿:numbbbbb
三門(mén)問(wèn)題是一個(gè)超級(jí)讓人摸不著頭腦的概率問(wèn)題类嗤。我們會(huì)在 Swift Playground 里來(lái)演示它的解法糊肠,而不是通過(guò)枯燥的數(shù)學(xué)解釋。
三門(mén)問(wèn)題
這個(gè)問(wèn)題的核心很簡(jiǎn)單遗锣。在 1990 年的Parade雜志中是這么解釋的:
假設(shè)你正在參加一個(gè)游戲節(jié)目货裹,需要在三扇門(mén)中選擇一扇。其中一扇后面有一輛車(chē)精偿,其余兩扇后面則是羊弧圆。你選擇了一扇門(mén)赋兵,假設(shè)是 1 號(hào)門(mén),主持人知道門(mén)后面是什么搔预,他開(kāi)啟了另一扇后面有羊的門(mén)霹期,假設(shè)是3號(hào)門(mén)。然后他問(wèn)你:“你想選擇 2 號(hào)門(mén)嗎拯田?”這時(shí)候你改變決策是有利的嗎历造?
實(shí)際上,結(jié)果是有利的勿锅。如果你選擇另外一扇門(mén)帕膜,你就有2/3的概率贏得汽車(chē)。相反溢十,如果你不改變你的選擇垮刹,贏得汽車(chē)的概率就只有 1/3。當(dāng)然你可以從數(shù)學(xué)的角度去證明张弛,但是這里我們希望驗(yàn)證一下荒典。
算法
算法很簡(jiǎn)單。首先吞鸭,你選擇一扇門(mén)寺董。然后主持人打開(kāi)一扇后面有羊的門(mén)。如果你的第一次選擇就選中了有車(chē)的門(mén)刻剥,他就要在剩下兩扇門(mén)中隨機(jī)選擇一扇開(kāi)啟遮咖。如果你的第一次選擇選中的是有羊的門(mén),他就要把剩下一扇也是羊的門(mén)打開(kāi)造虏。最后御吞,你是否改變選擇取決于你采取的策略。
Playground
我們來(lái)編寫(xiě)一個(gè)簡(jiǎn)單的 Playground 程序漓藕。我們會(huì)對(duì)每種選擇策略執(zhí)行 100000 次測(cè)試來(lái)得出大致的概率陶珠。
import UIKit
enum Strategy {
case Change
case Stay
}
func play(strategy:Strategy,repeats:Int) -> Int {
var wins = 0
for _ in 0..<repeats {
let car = Int(arc4random_uniform(3))
var playerChoice = Int(arc4random_uniform(3))
if strategy == Strategy.Change {
if playerChoice == car {
var remainingDoors = [0,1,2]
remainingDoors.removeAtIndex(playerChoice)
playerChoice = remainingDoors[Int(arc4random_uniform(2))]
} else {
playerChoice = car
}
}
if car == playerChoice {
wins++
}
}
return wins
}
var repeats = 100000
var winsStrategyChange = play(.Change, repeats: repeats)
var winsStrategyStay = play(.Stay, repeats: repeats)
var quoteStrategyChange = Double(winsStrategyChange) / Double(repeats)
var quoteStrategyStay = Double(winsStrategyStay) / Double(repeats)
結(jié)果
每次運(yùn)行這個(gè) Playground 得到的結(jié)果都不完全相同,但是都很接近的享钞。例如揍诽,其中一次結(jié)果是:
改變選擇且贏得汽車(chē)的次數(shù): 66,461
不改變選擇且贏得汽車(chē)的次數(shù): 33,509
改變選擇且贏得汽車(chē)的概率: 0,66461
不改變選擇且贏得汽車(chē)的概率: 0,33509
結(jié)果正如理論所預(yù)計(jì)的那樣。如果你不改變你的選擇栗竖,你就只有百分之 33 的概率贏得汽車(chē)暑脆。如果你改變了你的選擇,這個(gè)概率就上升到了百分之 66狐肢。
結(jié)論
在 Playground 中做實(shí)驗(yàn)是十分有趣的添吗。在這種情況下,我們可以驗(yàn)證那些乍一看摸不著頭腦的理論处坪。
引用
圖片: @ Lim ChewHow / shutterstock.com
維基百科: Monty Hall Problem