
2.4
モンティ・ホール問題
■
15
for hypo, prob in pmf.Items():
print hypo, prob
結果は、
Bowl 1 0.6
Bowl 2 0.4
となるが、これは、前節のコードと同じである。コードそのものは、ずっと複雑になっ
ている。
1
つの利点は、同じボウルから複数のクッキーを取り出せる(取り出したクッ
キーの補充あり)ように一般化していることである。
dataset = ['vanilla', 'chocolate', 'vanilla']
for data in dataset:
pmf.Update(data)
もう
1
つの利点は、他の同様の問題を解くためのフレームワークを提供していること
である。次節でモンティ・ホール問題をプログラムで解くが、フレームワークのどこが
同じかがわかる。
本節のコードは、
http://thinkbayes.com/cookie2.py
から得られる。詳細については、
まえがきの「コードについて」(
ix
ページ)を参照のこと。
2.4
モンティ・ホール問題
モンティ・ホール問題を解くために、新たに次のクラスを定義する。
class Monty(Pmf):
def
__
init
__
(self, hypos):
Pmf.
__
init
__
(self)
for hypo in hypos:
self.Set(hypo, 1)
self.Normalize()
ここまでは、
Monty
と
Cookie
は全く同じである。
Pmf
を求めるコードも仮説の名前を ...