幾何分布
資料:
抽象的、一般的な話を最初にせずに簡単に「幾何分布」を説明するならば
コインを\(x\)回投げて連続で裏が出続け最後に表が出る確率を表している
この各回の確率の分布状況をグラフで表したものを幾何分布と呼んでいる
緑色のグラフが離散的確率(\(x=1,2,3...\)つまり\(x\in \mathbb{N}\))を表し青色グラフは純粋な確率(実数に対応した確率)を表す
コインの表が出ると成功として考える
1回目で初めて表が出る確率 50% |○|
2回目で初めて表が出る確率 25% |×|○|
3回目で初めて表が出る確率 12.5% |×|×|○|
4回目で初めて表が出る確率 6.25% |×|×|×|○| (これは逆に考えると3回連続で裏が出る確率6.25% と言える事に留意)
幾何分布の定義は以下になる
\(\begin{cases} q=(1-p) \\ { P }\left( x \right) =p{ q }^{ x-1 } \end{cases}\)
\(p\quad 命題が成功する確率\)
\(q\quad 命題が失敗する確率\)
\(x\quad 試行回数\)
このケースに幾何分布の定義を利用してみると \({ P }\left( x \right) \quad =\quad \left( \frac { 1 }{ 2 } \right) \cdot \left( \frac { 1 }{ 2 } \right) ^{ x-1 }\quad =\quad \frac { 1 }{ { 2 }^{ x } } \) となり
出力される数列は \({ P }\left( x \right) \quad =\quad \left\{ \frac { 1 }{ 2 } ,\frac { 1 }{ 4 } ,\frac { 1 }{ 8 } ,\frac { 1 }{ 16 } ,\frac { 1 }{ 32 } ,\frac { 1 }{ 64 } ,... \right\} \) となる
話を少し変えてみよう
例えば剣を振って敵を倒すことを考える。敵に対する剣の命中率が85%だったとしよう
この場合、パラメータは以下となり
\(p=0.85=\frac { 17 }{ 20 } \quad ,\quad q=0.15=\frac { 3 }{ 20 }\)
式は以下となる
\( { P }\left( x \right) =\left( \frac { 17 }{ 20 } \right) \cdot \left( \frac { 3 }{ 20 } \right) ^{ x-1 }\)
算出される各確率は以下となる
\({ P }\left( x \right) =\left\{ \frac { 17 }{ 20 } ,\frac { 51 }{ 400 } ,\frac { 153 }{ 8000 } ,\frac { 459 }{ 160000 } ,\cdots \right\} =\left\{ 0.85\quad ,\quad 0.1275\quad ,\quad 0.019125\quad ,\quad 0.00286875\quad ,\quad \cdots \right\} \)
剣が敵にヒットすると成功として考える
1回目で初めて敵にヒットする確率 85% |○|
2回目で初めて敵にヒットする確率 12.75% |×|○|
3回目で初めて敵にヒットする確率 1.9125% |×|×|○|
4回目で初めて敵にヒットする確率 0.286875% |×|×|×|○| (これは逆に考えると3回連続で攻撃が外れる確率は0.2% と言える事に留意)
そして、話をこう変えてみる
例えば剣を振って敵を倒すことを考える。敵に対する剣の命中率が85%だったとしよう
剣が敵に当たらない場合を成功として考えると
この場合、パラメータは以下となり
\(p=0.15=\frac { 3 }{ 20 } \quad ,\quad q=0.85=\frac { 17 }{ 20 } \)
式は以下となる
\({ P }\left( x \right) =\left( \frac { 3 }{ 20 } \right) \cdot \left( \frac { 17 }{ 20 } \right) ^{ x-1 }\)
算出される各確率は以下となる
\({ P }\left( x \right) =\left\{ \frac { 3 }{ 20 } ,\frac { 51 }{ 400 } ,\frac { 867 }{ 8000 } ,\frac { 14739 }{ 160000 } ,\frac { 250563 }{ 3200000 } ,\cdots \right\} =\left\{ 0.15\quad ,\quad 0.1275\quad ,\quad 0.108375\quad ,\quad 0.09211875\quad ,\quad 0.078300937\quad ,\quad \cdots \right\} \)
剣が敵に当たらない場合を成功として考えると
1回目で初めて敵に当たらなかった確率 15% |○|
2回目で初めて敵に当たらなかった確率 12.75% |×|○|
3回目で初めて敵に当たらなかった確率 10.8375% |×|×|○|
4回目で初めて敵に当たらなかった確率 9.211875% |×|×|×|○|
5回目で初めて敵に当たらなかった確率 7.8300937% |×|×|×|×|○| (??これは逆に考えると4回連続で攻撃がヒットする確率は7.8%(コンボが決まる確率)と言える事に留意)
では剣の敵に対する命中率を90%に変えて計算してみるとどうなるだろうか
\(p=0.1=\frac { 1 }{ 10 } \quad ,\quad q=0.9=\frac { 9 }{ 10 } \quad ,\quad \quad { P }\left( x \right) =\left( \frac { 1 }{ 10 } \right) \cdot \left( \frac { 9 }{ 10 } \right) ^{ x-1 }\\ \\ { P }\left( x \right) =\left\{ \frac { 1 }{ 10 } ,\frac { 9 }{ 100 } ,\frac { 81 }{ 1000 } ,\frac { 729 }{ 10000 } ,\frac { 6561 }{ 100000 } ,\cdots \right\} =\left\{ 0.1\quad ,\quad 0.09\quad ,\quad 0.081\quad ,\quad 0.0729\quad ,\quad 0.06561\quad ,\quad \cdots \right\} \)
剣が敵に当たらない場合を成功として考えると
1回目で初めて敵に当たらなかった確率 10% |○|
2回目で初めて敵に当たらなかった確率 9% |×|○|
3回目で初めて敵に当たらなかった確率 8.1% |×|×|○|
4回目で初めて敵に当たらなかった確率 7.29% |×|×|×|○|
5回目で初めて敵に当たらなかった確率 6.561% |×|×|×|×|○| (??これは逆に考えると4回連続で攻撃がヒットする確率は6.5%(コンボが決まる確率)と言える事に留意)
これをグラフにすると武器の性能を視覚的に確認できる
グラフにすると対象の定量的な性質が視覚的に確認できる。試行の8回目で価値観の逆転が起きているのが分かる
実際にunityでこれを確認してみる
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
-
|
-
|
|
|
|
|
|
|
-
|
!
|
|
!
|
-
!
-
|
|
-
|
|
!
!
|
-
!
-
|
|
!
!
| using UnityEngine;
using System.Collections;
public class sc4 : MonoBehaviour
{
void Start()
{
int sampling = 1000000; float success = 0.9f; int x = 5;
int total = 0;
float result = 0;
for (int i = 0; i < sampling; i++)
{
if( TrialAttack(success) ==x)total++;
}
result = (float)total / (float)sampling; print(result);
}
int TrialAttack(float successs)
{
int i = 0;
while (true)
{
i++;
if (Attack(successs) == false) return i;
}
}
public bool Attack(float successs)
{
if (Random.value < successs) return true;
return false;
}
}
|
この結果を各値を変更しながら確かめると求めたとおりの答えが得られているのが確認できる