趣味数学:关于概率的蒙提霍尔悖论(也称为三门问题)

趣味数学:关于概率的蒙提霍尔悖论(也称为三门问题)

首页冒险解谜门悖论更新时间:2024-05-29

这个游戏的玩法是:参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门就可以赢得该汽车,而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人会开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机会率?如果严格按照上述的条件的话,答案是会—换门的话,赢得汽车的机会率是 2/3。

这条问题亦被叫做蒙提霍尔悖论:虽然该问题的答案在逻辑上并不自相矛盾,但十分违反直觉。这问题曾引起一阵热烈的讨论。

# 代码

下面的代码来自《程序员的数学2:概率统计》。

```ruby

#!/usr/bin/ruby -s

# -*- coding: euc-jp -*-

# -*- Ruby -*-

def usage

name = File::basename $0

print <<EOU

#{name}: ¥â¥ó¥Æ¥£¥Û¡¼¥ëÌäÂê¤ò¥·¥ß¥å¥ì¡¼¥È

(Îã)

#{name} 10 ¢ª 10 ²ó»î¹Ô

(¥ª¥×¥·¥ç¥óÎã)

-c ¤Þ¤¿¤Ï -change ¢ª ¥ä¥®¤ò¸«¤ÆÈâ¤òÊѤ¨¤ë

-s=777 ¤Þ¤¿¤Ï -seed=777 ¢ª Íð¿ô¤Î¼ï¤ò»ØÄê

-help ¤Þ¤¿¤Ï -h ¢ª ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨

EOU

end

#####################################

if ($help || $h || ARGV.empty?)

usage

exit 0

end

$change ||= $c

$seed ||= $s

srand($seed.to_i) if $seed

$n = ARGV.shift.to_i

def choice(a)

a[rand(a.length)]

end

#####################################

$doors = 'ABC'.split //

$n.times{

car = choice $doors

you = choice $doors

goat = choice($doors - [car, you])

you = choice($doors - [you, goat]) if $change

result = (car == you) ? 'O' : 'X'

puts result

}

```

结果是更换选择更好。

```

$ make long

(no change)

./monty.rb 10000 | ../count.rb

O: 3327 (33.27%)

X: 6673 (66.73%)

(change)

./monty.rb -c 10000 | ../count.rb

O: 6609 (66.09%)

X: 3391 (33.91%)

```

# 最后

因为机器学习需要概率,我也尝试学了一下,各种公式真的头大。努力吧。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved