今日は、オンライン状態ではあったけど、ベルダンナ(ベルアイルでのダンナねw)放置で別のことに熱中してました。
引き出物を作るために、アイテムを欲しい数だけ生産するのに必要な材料の数はいったいどれくらいなのだろう?
それを見積もるための計算式をこねくり回していました。
レシピが
生産数X(1,2,3,...) 成功率Y(Y: 0≦Y≦1)
材料1 必要数Z1
材料2 必要数Z2
:
材料i 必要数Zi(i=1,2,3,...)
のとき、
X個生産するのに必要な試行回数は、
1/Y……(1)
1回試行するたびに消費される材料iの個数は、
成功した場合に消費する数×成功率 + 失敗した場合に消費する数×(1-成功率)
=ZiY + Zi'(1-Y) ……(2)
ここで、失敗した場合に消費する材料の個数Zi'(i=1,2,3,...)は、成功した場合に消費する数の半分(少数以下切り上げ)だから、
Zi'=int((Zi+1)/2) ※int(x)はxの少数以下切り捨て(事実上問題ないわよね?)。
これを(2)に代入して、
=ZiY+int((Zi+1)/2)(1-Y) ……(2)’
したがって、
X個(=1ロット)生産するのに必要な材料iの個数は、
(1)×(2)’
= 1/Y × (ZiY+int((Zi+1)/2)(1-Y))
= Zi+int((Zi+1)/2)(1/Y-1)……(3)
である。
また、A個欲しい場合に必要なロット数は、
A/X……(4)
だから、A個生産するために必要な材料iの個数Biは、
Bi=(3)×(4)
=A(Zi+int((Zi+1)/2)(1/Y-1))/X
で、いいのよね?
実際には、少数以下を切り上げた個数だけ用意することになるのでしょうけど。