確率の問題

# やりたいこと
あるスレッドでは、確率の問題について同じ議論が10年も続いています。
そこで、理解の助けになればと思い、簡単に解説してみたいと思います。

## そのスレッド
[よく話題になる確率の問題を集めてみる](http://blog.livedoor.jp/nwknews/archives/4126636.html)

# \:mag: お題その1（トランプ）

> ジョーカーを除いたトランプ52枚の中から1枚のカードを抜き出し、表を見ないで箱の中にしまった。
そして、**残り**のカードから**無作為**に3枚抜き出したところ、3枚ともダイヤであった。
**このとき**、箱の中のカードがダイヤである確率はいくらか。


## 答えとシミュレーション
答えは、0.2041...($=\frac{13-3}{52-3}$)ですが、納得してもらうため、とにかく実行してみましょう。

```py3:python
%matplotlib inline
import random, numpy as np, matplotlib.pyplot as plt
random.seed(1)
r = []
for i in range(200): # 収束の様子を見ます
    m, n = 0, 0
    while True:
        a = np.array(random.sample(range(52), 4)) # 53枚から4枚選びます。13未満をダイヤとします。
        if (a[1:] < 13).all(): # 2,3,4枚目が全部ダイヤの場合
            if a[0] < 13: # 1枚目がダイヤか？
                m += 1
            n += 1
            if n == 1000:
                break
    r.append(m / n) # 1枚目がダイヤの割合
r = np.array(r)
plt.plot(r.cumsum() / range(1, r.size+1))
print(round(r.mean(), 4), round(10 / 49, 4))
>>>
0.2041 0.2041
```
![image](https://qiita-image-store.s3.amazonaws.com/0/13955/bbf6cbb0-c172-27a1-9a7a-36e14427e702.png)

ちゃんとあっていますね。

## 解説
勘違いのパターンをまとめてみました。

- ケース1： 箱の中に入れた時点での確率を答えているもの。
    -  問題が求めているのは、「3枚ともダイヤ」という情報を使った答えです。これは問題文の「**このとき**」を理解していないため間違えています。
- ケース2: 3枚のダイヤを作為的に選んでいるもの。
    - つまり残りの51枚のカードを全て表にし、その中から3枚のダイヤを選んだと勘違いをしています。これは問題文の「**無作為に**」を理解していないため間違えています。
- ケース3: 3枚のダイヤを選ぶ時に、最初の1枚も含めて選んだと勘違いをしているもの。
    - これは問題文の「**残りの**」を理解していないために間違えています。

---

# \:mag: お題その2（2つの封筒の問題）

> ここにお金の入った封筒が2つある。
1つの封筒には他方の倍のお金が入っている。
(言い方を変えると、1つの封筒には他方の半分のお金が入っている)
但し、いくら入っているかは分からない。
あなたは、2つの封筒のうち、どちらか1つだけを選び、中のお金をもらえる。
あなたが、1つ選んだところ1万円が入っていた。
ここで、「あなたが望むなら、もう1つの封筒と替えても良いですよ」と言われた。
さて、替えた方が得か、替えない方が得か答えよ。

## 答え
答えは「わからない」です。
「替えても替えなくても同じ」と考える人が多いですが、**間違い**です。

## 解説
- まず、「1つの封筒に5千円または2万円入っている。5千円の確率はいくつか」という問題を考えてみましょう。 答えは、「わからない」です。(1/2ではありません。)
- 次に、「2つの封筒に比率が2となるように金額が入っている。1つ開けたところ1万円であった。もう1つの封筒に5千円入っている確率はいくつか」という問題を考えてみましょう。この問題は、上記の問題と同じです。従って答えは「わからない」です。
- 確率がわからないと期待値も計算できません。従って、替えた方がよいかどうかもわからないことになります。

### 勘違いパターン

- ケース1: 交換した方が良いというもの。→問題に含まれていない「残りが5千円か2万円の確率は各々1/2」を前提にしています。
- ケース2: 変わらないというもの。→問題に含まれている「選んだ封筒が1万円」という前提を無視しています。
- ケース3: 1回実行するか複数回実行するかで変わるというもの。→問題に含まれていない前提（例：事前確率）を入れたり、問題に含まれている前提（例：数字を確認済み）を無視しています。
- ケース4: どちらかに決まっているというもの。→問題に含まれていない「残りは確定している」を前提にしています。

確率は、与えられた前提条件から`対象 / 全体`を計算すればよいだけです。勘違いは、前提の間違いから起こります。問題に含まれていない前提を考えてはいけません。

## お題その2（2つの封筒の問題）のさらなる解説

### 結論

未開封問題（金額不明時）のとき、交換しても期待値は変わりません。しかし、開封後は、交換した方が良いかどうかは不明です。
開封後のとき「交換しても期待値は変わらない」は**間違い**です。

**補足**：正確にいうと、「開封したかどうか」ではなく「数字を仮定した（前提を置く）かどうか」によります。数字は固定の値ではなく、変数でも同じです。具体的には、**未開封でも封筒の中味をXと仮定すると、交換した方が良いかどうかは不明になります**。

開封して1万円だったとき、あなたは2つの世界AとBのうち、どちらかにいますが、どちらにいるかはわかりません。

### Aの世界

もう1つの封筒は5千円です。あなたは、交換すると5千円の損です。もし、最初に5千円を選んでいれば、交換すると5千円の得です。

未開封の場合、`1/2 × -5000 + 1/2 × 5000 = 0`なので、交換しても期待値は変わりません。

### Bの世界

もう1つの封筒は2万円です。あなたは、交換すると1万円の得です。もし、最初に2万円を選んでいれば、交換すると1万円の損です。

未開封の場合、`1/2 × 10000 + 1/2 × -10000 = 0`なので、交換しても期待値は変わりません。

### 開封して1万円のとき

Bの世界にいると思えば、交換すれば良いでしょう。しかし、Aの世界にいる可能性とBの世界にいる可能性は等しいとは限りません。交換したときの期待値を計算することはできません。
2つの封筒のどちらを選ぶかは無作為にできますが、2つの世界のどちらにいるかを無作為に選んでいるわけではないことに注意しましょう。

---

## お題その2（2つの封筒の問題）の別の説明

[2つの封筒問題のパラドックス](https://qiita.com/SaitoTsutomu/items/63885dec1cca99acb7bb)

お題その2では、開封時の金額を1万円としていた。しかし、この金額を明示する必要はない。

> あなたが、1つの封筒を選んで金額を確認した。
ここで、「あなたが望むなら、もう1つの封筒と替えても良いですよ」と言われた。
さて、替えた方が得か、替えない方が得か答えよ。

このように問題を変えても結論は「わからない」だ。

### まとめ

- 未開封時は、「交換してもしなくても変わらない」
- 開封時は、金額を問題に含めなくても「交換した方がよいかどうかは不明」
  - 決して、「交換してもしなくても変わらない」ではない

---

## 書籍[「論理的思考力を鍛える３３の思考実験」](https://amazon.jp/dp/4801302092)について

- 書籍 184ページの「2つの封筒・2」は、(数字を除けば)上記のお題その2と同じ問題である。
- 書籍では、期待値を計算して「替えた方がよい」と述べているが、間違いである。
- 混乱を避けるために、お題その2と同じく、金額は1万円として、追加で解説する。
- 出題者が「5千円と1万円」を選ぶ可能性を p、「1万円と2万円」を選ぶ可能性を q としよう。
- 「p == q」であれば、書籍の期待値の計算は正しく、結論の「替えた方がよい」も正しい。
- 出題者が選ぶ可能性のある数字の集合を N としたときに、全ての$n (\in N)$について、「p == q」とすることは不可能である。
- 従って、特定の n について「p == q」を仮定することは、根拠がないだけでなく不自然である。
- p,qの割合が不明である以上、期待値は計算できない。従って、正しい結論は「わからない」である。

## 書籍[「思考実験リアルゲーム 知的勝ち残りのために」](https://amazon.jp/dp/4576140396)について

- 書籍 204ページの話は、(数字を除けば)上記のお題その2と同じ問題である。
- 書籍では、期待値を計算して「替えた方がよい」と述べているが、間違いである。
- 混乱を避けるために、お題その2と同じく、金額は1万円として、さらに追加で解説する。
- まず、常識的に金額は整数と想像できるが、正の連続値だとしよう。その場合、もう一方が「5千円、2万円」である確率を同じと考えることは無理がある。よって期待値は計算できない。
- 次に、金額は整数だとしよう。そして等確率で1つの金額を選び、もう1つの金額をその2倍としよう。
    - この場合、「5千円、2万円」の確率は、以下の3パターンとなる。
        - 「100% 5千円」と「0％ 2万円」
        - 「50% 5千円」と「50％ 2万円」
        - 「0% 5千円」と「100％ 2万円」
    - 『「50% 5千円」と「50％ 1万円」』の場合は期待値の計算は正しい。しかし、他の可能性もあり、それらの可能性の確率は不明である。よって全パターンでの期待値は計算できない。
- 最後に金額は整数だが、金額の選び方は不明だとしよう。やはりパターンは上記と同じだが確率は不明である。よって期待値は計算できない。

## 書籍[「論理パラドクシカ」](https://www.futami.co.jp/topix/detail.php?tid=424)について

- 『19「2つの封筒のパラドクス」へのトンデモ解答』に、上記のお題その2と同じ問題がある。
- 書籍では、期待値を計算して「替えた方がよい」と述べているが、間違いである。
- 交換したときの倍率の平均が1.25倍になるのは、その通りである。
- しかし、交換したときに差分の期待値は計算できない。
  - 2つの封筒を用意するのに用いた確率分布と確認した金額を仮定すれば差分の期待値は計算できるが、わからない以上計算できない。
- 試行回数が1回かどうかは関係ない。

# \:mag: お題その3（3つの封筒問題）

> 3つの封筒にそれぞれ5千円、1万円、2万円が入っている。そのうち2つの封筒が無作為に抜き出されて「好きな方を選んで良い」と言われた。1つを選ぶと1万円であった。そこで「もう一方と交換しても良い」と言われたとき、交換した方が良いだろうか？

## 答え

交換した方が良い。

## 解説

交換した場合の期待値は`1/2 × 5000 + 1/2 × 20000 = 12500`なので、交換した方が期待値が大きい。

3つの封筒から2つを**作為的に選ばれた**場合は、期待値は計算できないことに注意されたし。

以上