こんにちは!
ハルマキ(@_____harumaki)です。
今回は「賭ケグルイ双」にでてきたスリーヒットダイスについて計算した記事です。
派生記事となっておりますので、先に元記事をご覧ください。
- ルール
- 疑問点
- 状態の設定
- 状態ごとの確率の定義
- 状態遷移と確率を行列で表現
- 期待値の計算方法
- 無限級数の計算
- 実際の値で計算してみよう
1. スリーヒットダイスとは?
ルール
ディーラーが降ったダイスの出目を当てるギャンブル。
ダイスの出目は、1,2,3をDown(D)4,5,6をUP(U)として扱います。
UまたはDの3つの組み合わせを予想し、その予想した出目の組み合わせが先に出た方の勝ちです。
疑問点
しかし作中では、「先に発生する」という観点からは UUU のような3連続のものよりも UUD のような 2個+1個のパターンの方が有利だと説明されています。
具体的に期待値を計算してみましょう。
なお UUU より UUD の方が定性的に有利であるという説明は前記事にて。
2. 期待値計算
早速期待値計算をしていきましょう。
なお、計算のために「行列」と「無限級数の和」を用います。
状態の設定
期待値計算のためには「ちょうど●回目に的中する確率」を求める必要があります。
ここで、以下の5状態を定義します。
- A: 的中しておらず、直近2回の出目がUU
- B: 的中しておらず、直近2回の出目がUD
- C: 的中しておらず、直近2回の出目がDU
- D: 的中しておらず、直近2回の出目がDD
- P(予想値): 予想値が的中
予想的中である状態 P をいったん無視すると、状態遷移は以下のようになります。
仮に UUU と予想しており P(UUU) を考慮すると、状態遷移は以下のようになります。
状態ごとの確率の定義
n回サイコロを投げた段階でそれぞれが発生する確率を英小文字を用いて以下のように定義する。なお $n \geqq 2$ とします。
- a(n): n回サイコロを投げた段階で的中しておらず、直近2回の出目がUUである確率
- b(n): n回サイコロを投げた段階で的中しておらず、直近2回の出目がUDである確率
- c(n): n回サイコロを投げた段階で的中しておらず、直近2回の出目がDUである確率
- d(n): n回サイコロを投げた段階で的中しておらず、直近2回の出目がDDである確率
- p(n; 予想値): n回サイコロを投げた段階で、はじめて予想値が的中する確率
このとき
$$a(2) = b(2) = c(2) = d(2) = 1/4 \\
p(2; 予想値) = 0$$
となります。
ここで列ベクトル $\boldsymbol{x}(n; 予想値)$ を以下のように定義します。
$$
\boldsymbol{x}(n; 予想値) = \begin{bmatrix}
a(n) \\ b(n) \\ c(n)
\\ d(n) \\ p(n; 予想値)
\end{bmatrix}
$$
状態遷移と確率を行列で表現
例えば UUU と予想している状態において、確率について以下が成立します。
$$
\begin{split}
a(n+1) &= c(n) / 2 \\
b(n+1) &= a(n) /
2 + c(n) / 2 \\
c(n+1) &= b(n) / 2 + d(n) / 2 \\
d(n+1) &=
b(n) / 2 + d(n) / 2 \\
p(n+1; UUU) &= a(n) / 2
\end{split}
$$
この遷移を行列 $\boldsymbol{A}(予想値)$ で表現する。例えば $\boldsymbol{A}(UUU)$ は
$$
\boldsymbol{A}(UUU) = \begin{bmatrix}
0 & 0 & 1/2 & 0
& 0 \\
1/2 & 0 & 1/2 & 0 & 0 \\
0 & 1/2
& 0 & 1/2 & 0 & \\
0 & 1/2 & 0 & 1/2 & 0
& \\
1/2 & 0 & 0 & 0 & 0 \\
\end{bmatrix}
$$
となります。
こうすることで
$$
\boldsymbol{x}(n+1; 予想値) = \boldsymbol{A}(予想値) \boldsymbol{x}(n;
予想値)
$$
と書くことができます。
なお以降は「予想値」の記述を省略して
$$
\boldsymbol{x}(n+1) = \boldsymbol{A} \boldsymbol{x}(n)
$$
とします。
このとき
$$
\boldsymbol{x}(n) = \boldsymbol{A}^{n-2} \boldsymbol{x}(2) \qquad (n
\geqq 2)
$$
となります。
ここで、試行回数を増やして $n \to \infty$ としたとき $\boldsymbol{x}(n) \to
\boldsymbol{0}$ になると考えられますね。
なぜなら、試行回数が増えると的中して終了になる確率も次第に高まり、「まだ成立していない」確率は下がっていくからです。
期待値の計算方法
ここで求めるべき期待値の計算方法をおさらいしておきましょう。
ちょうど $n$
回目に予想値が的中する確率 $ p(n) $ を用いて
$$
\sum_{k=3}^{\infty} k p(k)
$$
で表されます。
これはすなわち
$$
\sum_{k=2}^{\infty} k \boldsymbol{x}(k)
$$
の5行目の成分を求めればよいことになります。
$k = 2$ の場合については
$p(2) = 0$ なので影響しないため、後の計算都合のために加えておきます。
無限級数の計算
そのままの和
まず $\boldsymbol{x}(n)$ の和について考えます。
$$
\boldsymbol{S}(n) = \sum_{k=2}^{n} \boldsymbol{x}(k)
$$
とします。
$$
\boldsymbol{S}(n) =
\boldsymbol{x}(2) +
\boldsymbol{A}\boldsymbol{x}(2) +
\ldots +
\boldsymbol{A}^{n-2}\boldsymbol{x}(2)
$$
両辺左から $\boldsymbol{A}$ をかけて
$$
\boldsymbol{A} \boldsymbol{S}(n) =
\boldsymbol{A}\boldsymbol{x}(2)
+
\boldsymbol{A}^2\boldsymbol{x}(2) +
\ldots +
\boldsymbol{A}^{n-1}\boldsymbol{x}(2)
$$
両辺引き算をして
$$
\begin{split}
(\boldsymbol{E} - \boldsymbol{A}) \boldsymbol{S}(n)
&=
\boldsymbol{x}(2) -
\boldsymbol{A}^{n-1}\boldsymbol{x}(2)
\\
&= \boldsymbol{x}(2) - \boldsymbol{x}(n+1)
\end{split}
$$
$n \to \infty$ とすると
$$
(\boldsymbol{E} - \boldsymbol{A}) \boldsymbol{S}(\infty) =
\boldsymbol{x}(2)
$$
となります。
さらに $(\boldsymbol{E} - \boldsymbol{A})$
に逆行列が存在する場合
$$
\boldsymbol{S}(\infty) = (\boldsymbol{E} - \boldsymbol{A})^{-1}
\boldsymbol{x}(2)
$$
とかけます。
回数をかけた和
つづいて $n\boldsymbol{x}(n)$ の和について考えます。
$$
\boldsymbol{T}(n) = \sum_{k=2}^{n} k \boldsymbol{x}(k)
$$
とします。
$$
\boldsymbol{T}(n) =
2 \boldsymbol{x}(2) +
3
\boldsymbol{A}\boldsymbol{x}(2) +
\ldots
n
\boldsymbol{A}^{n-2}\boldsymbol{x}(2)
$$
両辺左から $\boldsymbol{A}$ をかけて
$$
\boldsymbol{A} \boldsymbol{T}(n) =
2
\boldsymbol{A}\boldsymbol{x}(2) +
3 \boldsymbol{A}^2\boldsymbol{x}(2)
+
\ldots
n \boldsymbol{A}^{n-1}\boldsymbol{x}(2)
$$
両辺引き算をして
$$
\begin{split}
(\boldsymbol{E} - \boldsymbol{A}) \boldsymbol{T}(n)
&=
2 \boldsymbol{x}(2) +
\boldsymbol{A} \boldsymbol{x}(2) +
\boldsymbol{A}^2
\boldsymbol{x}(2) +
\ldots +
\boldsymbol{A}^{n-2}\boldsymbol{x}(2)
-
n \boldsymbol{A}^{n-1}\boldsymbol{x}(2) \\
&=
\boldsymbol{x}(2) + \boldsymbol{S}(n) - n \boldsymbol{x}(n+1)
\end{split}
$$
$n \to \infty$ とすると
$$
(\boldsymbol{E} - \boldsymbol{A}) \boldsymbol{T}(\infty) =
\boldsymbol{x}(2) + \boldsymbol{S}(\infty)
$$
となります。
さらに $(\boldsymbol{E} - \boldsymbol{A})$
に逆行列が存在する場合
$$
\begin{split}
\boldsymbol{T}(\infty) &=
(\boldsymbol{E}
- \boldsymbol{A})^{-1} \{\boldsymbol{x}(2) + \boldsymbol{S}(\infty) \} \\
&=
(\boldsymbol{E} - \boldsymbol{A})^{-1}\{\boldsymbol{x}(2) + (\boldsymbol{E} -
\boldsymbol{A})^{-1} \boldsymbol{x}(2)\} \\
&= (\boldsymbol{E} -
\boldsymbol{A})^{-1} \{\boldsymbol{E} + (\boldsymbol{E} -
\boldsymbol{A})^{-1} \} \boldsymbol{x}(2)
\end{split}
$$
とかけます。
…実は
$$
\lim_{n \to \infty} n \boldsymbol{x}(n+1) = \boldsymbol{0}
$$
となる根拠をただしく示すことができていません。
$\boldsymbol{x}$
の各要素は指数関数的に下がっていっていることを数値的に確認したのみなのです…
実際の値で計算してみよう
実際の期待値は $\boldsymbol{T}(\infty)$ の5行目の成分です。
実際に
$\boldsymbol{A}$ に値を代入して計算してみましょう。
予想値がUUUの場合
$$
\boldsymbol{A} = \begin{bmatrix}
0 & 0 & 1/2 & 0
& 0 \\
1/2 & 0 & 1/2 & 0 & 0 \\
0 & 1/2
& 0 & 1/2 & 0 & \\
0 & 1/2 & 0 & 1/2 & 0
& \\
1/2 & 0 & 0 & 0 & 0 \\
\end{bmatrix}
$$
です。
これをもとに計算すると
$$
\boldsymbol{T}(\infty) = \begin{bmatrix}
18 & 30 & 26
& 30 & 0 \\
26 & 48 & 40 & 46 & 0 \\
30
& 56 & 48 & 56 & 0 \\
30 & 56 & 48 & 56 &
0 \\
10 & 16 & 14 & 16 & 2
\end{bmatrix}
\begin{bmatrix} 1/4 \\ 1/4 \\ 1/4 \\ 1/4 \\ 0 \end{bmatrix}
=
\begin{bmatrix} 26 \\ 40 \\ 95/2 \\ 95/2 \\ 14 \end{bmatrix}
$$
よって、UUU が的中するサイコロを振る試行回数の期待値は 14 であることがわかりますね。
予想値がUUDの場合
$$
\boldsymbol{A} = \begin{bmatrix}
1/2 & 0 & 1/2 & 0
& 0 \\
0 & 0 & 1/2 & 0 & 0 \\
0 & 1/2 &
0 & 1/2 & 0 & \\
0 & 1/2 & 0 & 1/2 & 0 &
\\
1/2 & 0 & 0 & 0 & 0 \\
\end{bmatrix}
$$
です。これをもとに計算すると
$$
\boldsymbol{T}(\infty) = \begin{bmatrix}
6 & 18 & 14
& 18 & 0 \\
0 & 10 & 6 & 8 & 0 \\
0 & 14
& 10 & 14 & 0 \\
0 & 14 & 8 & 16 & 0 \\
4
& 10 & 8 & 10 & 2
\end{bmatrix} \begin{bmatrix} 1/4 \\
1/4 \\ 1/4 \\ 1/4 \\ 0 \end{bmatrix}
= \begin{bmatrix} 14 \\ 6 \\ 19/2 \\
19/2 \\ 8 \end{bmatrix}
$$
よって、UUD が的中するサイコロを振る試行回数の期待値は 8 であることがわかりますね。
予想値がUDUの場合
$$
\boldsymbol{A} = \begin{bmatrix}
1/2 & 0 & 1/2 & 0
& 0 \\
1/2 & 0 & 1/2 & 0 & 0 \\
0 & 0 &
0 & 1/2 & 0 & \\
0 & 1/2 & 0 & 1/2 & 0 &
\\
0 & 1/2 & 0 & 0 & 0 \\
\end{bmatrix}
$$
です。これをもとに計算すると
$$
\boldsymbol{T}(\infty) = \begin{bmatrix}
20 & 12 & 18
& 22 & 0 \\
18 & 14 & 18 & 22 & 0 \\
12
& 10 & 14 & 18 & 0 \\
22 & 18 & 22 & 32 &
0 \\
10 & 8 & 10 & 12 & 2
\end{bmatrix}
\begin{bmatrix} 1/4 \\ 1/4 \\ 1/4 \\ 1/4 \\ 0 \end{bmatrix}
=
\begin{bmatrix} 18 \\ 18 \\ 27/2 \\ 47/2 \\ 10 \end{bmatrix}
$$
よって、UDU が的中するサイコロを振る試行回数の期待値は 10 であることがわかりますね。
3. まとめ
的中までの期待値は、UUU が 14、UUD が 8、UDU が 10 であることが計算で導き出せました。
UUU の期待値が 14, UUD の期待値が 8 ということについては作中で言及がありましたが、あの一瞬で脳内でこんな計算を繰り広げたのでしょうかね…。
あるいはもっと簡単な計算方法があるのでしょうか…