【MHW:IB】弾丸節約の確率論

モンスターハンターにおけるスキル「弾丸節約」とは一定確率でボウガンの弾や弓のビンを消費を抑えることができます.
その節約確率はMHW:IBでは弾丸節約は20\%、真・弾丸節約が30\%と言われています.
ある節約発動回数になる確率や期待値についての詳細な計算をしていきます.

節約確率

ある弾が節約される確率pとします.MHW:IBの業物・弾丸節約Lv1であればp=0.2ということになります.
これは弾が消費される確率が1-pであると言い換えることもできます.
(多くの人が間違えているので)注意していただきたいのは、例えば100発'消費'したうちに25回節約したとき、節約確率は25\%だ(と統計的に推測される)、という主張は誤っています.

(射撃回数)\times (消費率) = (消費量) = (射撃回数) - (節約回数)

という関係が成り立つので、

(節約確率) =1 - (消費確率) = (節約回数) \div (射撃回数)
 = (節約回数) \div ( (消費量)+(節約回数) )

で推定されるということになります.この例の場合は25/(100+25)=0.2となり、節約確率は20\%だと推測されることになります.
また、100発'撃った'ときに25回節約したときは消費量が75発であり、この場合は25\%だと推測されます.
節約確率25\%のときに100発消費した場合、

(射撃回数) = (消費量) \div (消費確率) = (消費量) \div (1-(節約確率))

なので100/(1-0.25)=133.3発撃てることとなり、33.3回節約されるはずだということになります.

弾丸数の期待値

上での計算例から、実際の弾丸数が実質的には何発になるかの期待値を求めることができます.
弾丸数(消費量)n発のとき、その期待値をE(n)とすると、

n =E(n) (1-p)

なる関係から、

 E(n) = \frac{n}{1-p}

となります.
また別の考えとしては、1発の期待値をまず考えます.
期待値は実弾1に加え、1回節約する確率(に実弾数1をかけたもの)、2回節約する確率(に1回目で節約された弾丸数1をかけたもの)、...を無限に足していくことで求まります.

E(1) = 1 + p + p^2 + ...  = \frac{1}{1-p}

なのでn発の期待値は

E(n) = nE(1) = \frac{n}{1-p}

となります.






n発がちょうどn+m発になる確率

n発(消費量)がちょうどn+m発(射撃回数)になる確率を P(n,m)とします.
これを考えるには、
k発目で(連続して)s_k回節約されるとします.これらは

m = s_1 + s_2 + ... + s_k + ... + s_n ・・・(1)

を満たします.k発目に着目すると、その事象の確率はps_k回数と、k発目が消費される確率(1-p)をかけあわせたものになります(消費しないとk+1に進んでいないことになり、そのような事象は不適切).そして、k=1からk=n発までそれらの事象がそれぞれ起きるのですべてかけ合わせます.
これを(1)式を満たす可能なすべての和事象が求めたい事象なので、それらの確率を足し合わせます.このことを式にすれば、

\displaystyle P(n,m) = \sum_{m = s_1 + ... + s_n} \prod_{k=1}^n p^{s_k} (1-p)
=\displaystyle \sum_{ m = s_1  + ... + s_n} p^{\sum_{k=1}^n s_k} (1-p)^n
=\displaystyle \sum_{ m = s_1 + ... + s_n} p^m (1-p)^n
=\displaystyle \left(\sum_{ m = s_1 + ... + s_n} \right) p^m (1-p)^n

となります.計算するうえで、難しいのは()内のだけです.



以下、nが十分に大きい(n>3)とし、m=0から3の例をあげながら、納得してもらうために別の言い換えをしながら計算します.

n発がちょうどn発になる確率

これは自明で、すべて節約されない確率、すなわち連続してn発が消費される確率で
P(n,0)= (1-p)^n


n発がちょうどn+1発になる確率

確率pn回反復試行のうちちょうど1回成功し、かつ節約された1発が消費される確率(1=1)

P(n,1)= n p (1-p)^{n-1} (1-p) = n p (1-p)^n


n発がちょうどn+2発になる確率

確率p^2n回反復試行のうちちょうど1回成功し、かつ節約された1発が節約されない確率(2=2+0)と
確率pn回反復試行のうちちょうど2回成功し、かつ節約された2発が節約されない確率(2=1+1)の和

P(n,2)= n (p^2) (1-p)^{n-1} (1-p) + {}_n \mathrm{C}_2 p^2 (1-p)^{n-2} (1-p)^2
=(n + {}_n \mathrm{C}_2\ ) p^2 (1-p)^n
=(n + \frac{1}{2} n(n-1)) p^2 (1-p)^n


n発がちょうどn+3発になる確率

確率p^3n回反復試行のうちちょうど1回成功し、かつ節約された1発が節約されない確率(3=3+0+0)と
確率p^2と確率pn回反復試行のうちそれぞれちょうど1回成功し、かつ節約された2発が節約されない確率(3=2+1)と
確率pn回反復試行のうちちょうど3回成功し、かつ節約された3発が節約されない確率(3=1+1+1)の和

P(n,3)= n (p^3) (1-p)^{n-1} (1-p) + {}_n \mathrm{C}_1\  {}_{n-1}\mathrm{C}_1\  (p^2) p (1-p)^{n-2} (1-p)^2 + {}_n\mathrm{C}_3 p^3(1-p)^{n-3} (1-p)^3
=(n + {}_n \mathrm{C}_1\  {}_{n-1}\mathrm{C}_1\  + {}_n C_3) p^3 (1-p)^n
=(n + n(n-1) + \frac{1}{6} n(n-1)(n-2)) p^3 (1-p)^n







自然数の分割

以上の例を計算しながら追った方は気づいたと思いますが、(1)式が要となっています.
まず可能なm=s_1+...+s_k+...+s_nの組み合わせを数え上げればよいのです.
mをこのようにそれ以下の自然数の和で表示することを、mの分割といいます.
上の例ではヒントらしく最後にカッコ内に分割の仕方を書いていました.
自然数ms_kの順序を問わない分割の仕方の数を分割数といいます.
注意として、弾の数はn発までなのでnを超える項数からなる分割は除かなければなりません.


手順としてはまず、自然数mn項以下の分割を全列挙します(順不同).
そのうち、ある分割p(項数|p|)について、

f \colon \lambda \in p \mapsto f(\lambda) =\lambda \in q=f(p)

g \colon \lambda \in q \mapsto g(\lambda) =(pにおける同一項の数) \in r=g(q)

とすると、値域q=f(p)によってpの相異なる項の数は|q|と表せます.
例えば、10の分割p=1+1+1+2+5(|p|=5)のとき
q=f(p)=\{1,2,5 \}
r=g(q)=\{g(1)=3,g(2)=g(5)=1\}
です.

\displaystyle \sum_{ m = s_1 + ... + s_n}  =\sum_{\forall p} {}_{n} \mathrm{C}_{g(q_1)}\  {}_{n-g(q_1)} \mathrm{C}_{g(q_2)}\ ...{}_{n-|q|+g(q_{|q|})} \mathrm{C}_{g(q_{|q|})}\
=\sum_{\forall p} \prod_{i=1}^{|q|} \ {}_{n-\sum_{j=1}^{i }g(q_j)} \mathrm{C}_{g(q_j)}

で計算はできます.




例えば先ほどのm=3 < nの例でいえば、3

3=3,\ 1+2,\ 1+1+1

と分割できて、
q=f(3)=\{3\}
r=g(\{3\})=\{g(3)=1\}

q=f(1+2)=\{1,2\}
r=g(\{1,2\})=\{g(1)=1, g(2)=1\}

q=f(1+1+1)=\{1\}
r=g(\{1\})=\{g(1)=3\}

なので

\displaystyle \sum_{ 3 = s_1 + ... + s_n}= {}_{n} \mathrm{C}_{1}\ + {}_{n} \mathrm{C}_{1}\  {}_{n-1} \mathrm{C}_{1} + {}_{n} \mathrm{C}_{3}\

となるというわけです.これによって機械的に計算することができます.






n発が少なくともn+m発になる確率

少なくともn+m発にはなる確率をQ(n,m)とします.考え方は殆ど同じで、
k発目で(連続して)s_k回節約されるとしたとき、m \leqq s_1 + s_2 + ... + s_k + ... + s_nを満たすとします.m以上のあらゆる組み合わせをすべて足せばいいのです.

\displaystyle Q(n,m) = \sum_{m \leqq s_1 + ... + s_n} \prod_{k=1}^n p^{s_k} (1-p)
=\displaystyle \left(\sum_{ m \leqq s_1 + ... + s_n} \right) p^m (1-p)^n

このように直接考えると無限和ですが、ちょうどn+m'(m' < m)発になる事象の総和事象が余事象なので

Q(n,m) = 1 - \sum_{m'=0}^{m-1}P(n,m')

と有限和でも計算できます.