月を眺める孤島

多分デレステとポケモンの話がメインのブログです

【ポケモンDP】最初に戦うムックルにヒコザルが負ける確率はどれくらい?

こんばんは、むぅんです。

先日Youtubeに投稿されたペレさんによるこちらの動画が大変興味深い内容で、興味本位でヒコザルムックルに負ける確率を計算したところ、思った以上に反響があったので改めてこちらでまとめてみたいと思います。
動画の結末は本当に面白かったので、まだ視聴されていない方は是非一度ご覧になってみてください。
なお、今回の記事化にあたってはペレさんに許可をいただいております。快く承諾してくださり本当にありがとうございます!


www.youtube.com


また、一応何度も確認してはいますが、もし計算ミスがあった場合はコメントで教えていただけると幸いです。


f:id:shinemoon227:20201130023349p:plain
ヒコザルムックルに負ける瞬間(画像は動画より)


 

ヒコザルムックルに負ける条件

まずはヒコザルムックルに負ける条件を整理します。ペレさんによると次の3点を全て満たす必要があります。

ヒコザルのHPが19であること

ムックルは最大で4ダメージを与えてきますが、最初のこのバトルでは簡単に負けてしまわないようこちらのHPゲージが赤になるとムックルが逃げ出してしまう仕様になっています。赤ゲージとなる条件はHPが20.99%以下となることで*1ナエトルポッチャマは例え個体値が最低であってもHPが20以上であることが保証されているため、残りHPが4になった時点でムックルが逃げ出してしまいます。「ならば残りHPを5以上にした状態で次のターンに急所に当ててもらえばよいのでは?」と思われるかもしれませんが、最初のバトルに限ってはそもそも技が急所に当たらないようになっているためこれも不可能です。

したがって、HPが19のヒコザル(残りHPが4になってもまだゲージが黄色)を用意し、次のターンに4ダメージを与えてもらって倒してもらうというのが流れになります。

② 相手が与えてくるダメージが3または4のムックルであること

最大HPが19であるのに残りHPを4にするという話からも分かる通り、ポケモンのダメージは毎ターンランダムに若干変動します。後ほど詳しく解説しますが、ここのムックルは与えるダメージが1または3の個体3または4の個体の2通りが存在し、後者でないととどめを刺すための4ダメージを与えてくれません。

 

③ 残りHPが4の状態となり、その次に4ダメージを受けること

前述の通り、ムックルは3または4ダメージのどちらかを与えてきます。残りHPを4にする(合計15ダメージを受ける)ためには「3ダメージを5回」か「3ダメージを1回と4ダメージを3回」のどちらかのパターンを引く必要があります。これも後ほど計算しますが、後者のパターンは滅多に起こりえず、基本的には前者のパターンで残りHPを4にしてから最後に4ダメージを受けて倒してもらうことになります。


 

ステータスを求める

ここからはステータスを計算していきます。必要なものはムックルの攻撃とヒコザルのHP、防御です。
ステータスの計算式は次の通りです。

HP=(種族値×2+個体値+努力値/4)×レベル/100+レベル+10
それ以外=((種族値×2+個体値+努力値/4)×レベル/100+5)×性格補正
※ただし、小数が出るたび切り捨て


行う計算はたし算、かけ算、わり算だけで大変シンプルなのですが、「小数が出るたびに切り捨て」という処理には注意する必要があります。また、加減乗除の優先順位は通常の計算と同様ですが、かけ算とわり算など優先順位が同一のものは左から順に処理を行います。したがって、例えば「×レベル/100」の部分は「レベルを100で割ったものをかける」のではなく、「レベルをかけた後100で割る」という処理になります。*2

 

ムックルの攻撃

さて、まずはムックルの攻撃を計算しましょう。種族値は55、努力値は0固定であることからカッコ内の数字は個体値のみに依存し、110(個体値0)から141(個体値31)の間で変動します。ところが、ムックルのLvは2しかなく2をかけた後100で割り5を加えるとその値は確実に7となります。よって、ムックルの攻撃は個体値の影響を一切受けず、最後の計算である性格補正をかける行程でのみステータスが変化するということになります(ここまでの計算で得られた値をここでは補正前のステータスと呼ぶことにします)。性格補正というのは性格によりステータスの一部に得手不得手が生じる補正のことで、1.1、1.0、0.9のいずれかの値を取ります。「いじっぱりのときの攻撃」のように上昇するものは1.1、「ようきのときの特攻」のように下降するものが0.9です。最終的に、小数が出るたび切り捨てルールにより、0.9をかけたときのみ攻撃が1減り6に、それ以外の場合は7のままになります。
以上のことをまとめると以下のようになります。


個体値 性格↓ 性格- 性格↑
0~31 6 7 7

 

ヒコザルの防御

続いてヒコザルの防御を計算します。種族値は44であり、ムックルの攻撃同様カッコ内を計算すると88(個体値0)から119(個体値31)の間で変動します。先ほどのムックルと異なり、Lvが5であることからカッコ内が88のときの補正前のステータスは9となるのに対し、カッコ内が119のときは10となります。すなわち、個体値によりステータスが変動するのです。では、補正前のステータスが9から10に上がる境界はどこなのでしょうか?これは次の不等式を解くことで計算できます。

 \mathrm{floor} \left( (88 + x) \times 5 \times \cfrac{1}{100} \right) + 5 \geq 10

ここで、  \mathrm{floor}(x) は実数  x に対して  x 以下の最大の整数を返す関数です。*3 これを解くと  x \geq 12 となり、個体値が12以上のとき補正前のステータスは10となることがわかります。なお、  x \geq 32 を満たすとき補正前のステータスは11となりますが、個体値の上限は31であることから実際に11になることはありません。

更に面倒なのが性格補正で、10という値は1.1倍するとちょうど11になり切り捨ての処理を受けないのです。一方、9は1.1倍しても9.9にしかならず、ギリギリ10に届かないため切り捨てられて結局9に戻ってしまいます。このように、ヒコザルの防御は個体値や性格によって様々な値を取ることになり、それらをまとめるとこのようになります。


個体値 性格↓ 性格- 性格↑
0~11 8 9 9
12~31 9 10 11

 

ヒコザルのHP

最後はヒコザルのHPですが、幸いなことにHPは性格補正の影響を受けないので計算が簡単です。HPの種族値も防御と同じ44であることからステータスが変化する個体値の境界線は12で、HPは19か20のどちらかになります。


個体値 性格-
0~11 19
12~31 20


 

ダメージを求める

続いてダメージ計算を行います。
計算式は次の通りです。

ダメージ=(((攻撃側のレベル×2/5+2)×威力×攻撃/防御)/50+2)×乱数補正/100×タイプ一致補正
※ただし、小数が出るたび切り捨て


これもやはりただの加減乗除の組み合わせでしかないのですが、最後のほうにある乱数補正というのがなかなかに曲者です。乱数補正は85から100までのいずれかの整数を毎回ランダムに取り、これを100で割ることでダメージを最大で元の85%にまでカットするという計算になります。ただ、幸運なことに、ムックルのたいあたり(威力35)では、互いのLvが低すぎるのも相まって乱数補正が100だったときのみダメージが変動せず、それ以外のときは全て小数が出るたび切り捨てルールにより1下がるという何ともわかりやすい結果となっていました。最終的にタイプ一致補正(たいあたりのタイプとムックルのタイプが同じことによる1.5倍のボーナス)がかかる影響でそのダメージ差は2に広がりますが、それでも結果は思ったより綺麗にまとまります(後の計算のため、パターンごとに記号を割り振っています)。




ムックルの攻撃 6 7
ヒコザルの防御
8
9
10
11
8
9
10
11
ダメージ 3または4
(パターンA)
1または3
(パターンB)
3または4
(パターンC)
1または3
(パターンD)


 

確率を計算する

ここまできたら後は確率をひたすら計算するだけです。

ヒコザルのHPが19である確率

個体値は0から31で、そのうち11以下であるときHPが19となるのでその確率は

 \cfrac{12}{32} = \cfrac{3}{8}

です。

② 相手が与えてくるダメージが3または4のムックルである確率

これは先ほどの表でいうところのパターンAまたはパターンCにあたります。これを計算するために、ムックルの攻撃とヒコザルの防御がそれぞれどのくらいの確率でどの値を取るのかを計算する必要があります。

まず、ムックルの攻撃は性格にのみ依存することから、性格がどのように決まるかさえわかれば計算できます。性格は攻撃、防御、特攻、特防、素早さのいずれかが上がり、いずれかが下がることから25通りに分かれていますが、「攻撃が上がって攻撃が下がる」のように互いに打ち消し合うパターンも存在するため、実際にはある特定のステータスが上がる(もしくは下がる)性格は4通り存在することになります。*4 したがって、ムックルの攻撃が下がる性格になる確率は  \cfrac{4}{25} です。補正がかからないときと上がるときも同様に計算でき、結果はこのようになります。


個体値 性格↓ 性格- 性格↑
0~31  \cfrac{4}{25}  \cfrac{17}{25}  \cfrac{4}{25}


一方ヒコザルの攻撃は性格だけでなく個体値によっても変化するため、計算は中々面倒なことになります。例えば、個体値が11以下で性格に補正がかからないときは

 \cfrac{3}{8} \times \cfrac{17}{25} = \cfrac{51}{200}

のように確率は両者の積で表されます。これらをそれぞれ計算し表を埋めたものがこちらになります。

 

個体値 性格↓ 性格- 性格↑
0~11  \cfrac{3}{50}  \cfrac{51}{200}  \cfrac{3}{50}
12~31  \cfrac{1}{10}  \cfrac{85}{200}  \cfrac{1}{10}

 
これらの確率から、まずはダメージがパターンAとなる確率を求めていきます。パターンAはムックルの攻撃が6、ヒコザルの防御が8のときなので

 \cfrac{4}{25} \times \cfrac{3}{50} = \cfrac{6}{625}

となります。一方、パターンCとなるのはムックルの攻撃が7、ヒコザルの防御が8または9のときなので

 \left( \cfrac{17}{25} + \cfrac{4}{25} \right) \times \left( \cfrac{3}{50} + \cfrac{51}{200} + \cfrac{3}{50} + \cfrac{1}{10} \right) = \cfrac{399}{1000}

このどちらかのパターンであれば良いため、②を満たす確率は

 \cfrac{6}{625} \times \cfrac{399}{1000} = \cfrac{2043}{5000}

です。思ったより高いですね。実際、ペレさんは動画の概要欄で「確率はだいたい半々」と述べられていますが、この計算結果をパーセンテージで表すと約40.86%となり、ペレさんの体感が大きく外れていないことがわかります。流石です。

③ 残りHPが4の状態となり、その次に4ダメージを受ける確率

これは「3ダメージを5回」か「3ダメージを1回と4ダメージを3回」のどちらかを引く確率の和となります。乱数補正が85から100までの16通りである内、ダメージが4となるのは乱数補正で100を引いたときだけであることから、4ダメージを引く確率は  \cfrac{1}{16} です。これより、前者の確率は

 \left( \cfrac{15}{16} \right)^{5} = \cfrac{759375}{16777216} \approx 0.045262

とそこそこの高さである一方、後者の確率は

 \begin{eqnarray*}
  && {}_4 \mathrm{C} _3
\end{eqnarray*} \left( \cfrac{15}{16} \right) \left( \cfrac{1}{16} \right)^{3} = \cfrac{15}{262144} \approx 0.000057

と極めて低い確率となります。両者の和は

 \cfrac{759375}{16777216} + \cfrac{15}{262144} = \cfrac{760335}{16777216} \approx 0.045319

となり、4ダメージを2回以上引くパターンはほぼ影響していないことがわかります。このことから、リセットを繰り返しヒコザルが倒される瞬間を見るためには3ダメージを5回引いてから4ダメージを引いて倒されるのを狙うことになりそうです。

①②③が同時に起こりうる確率

以上を踏まえ、全てが同時に起こりうる確率を計算すると、


 \cfrac{3}{8} \times \cfrac{2043}{5000} \times \cfrac{760335}{16777216} = \cfrac{932018643}{134217728000} \approx 0.006944


となり、約0.6944%(およそ144回に1回)の確率でヒコザルムックルに負けるということがわかりました。

まとめ

いかがでしたか?シンプルな問題ながら、思ったより考えることが多かったのではないでしょうか?計算そのものは高校数学で触れる基礎レベルのもののみなのでそこまで難しくはありませんが、数字が結構エグいことになるのでとても手で計算しようと思えるものではありませんね…。
なお、これは余談ですが、ステータスの条件(①②)を満たしている際にヒコザルムックルに負ける確率は③の4.5319%ほどとなります。これはエアスラを外す確率と大体一緒で、およそ22回に1回は負けてしまう計算になります。したがって、「ヒコザルのHPが19かつムックルから3ダメージを2連続で受ける」など①②の条件が整っていることにうすうす勘付いたとき、もしヒコザルが偶然にも色違いだった場合は速攻で倒しにかかることをオススメします。*5

最後になりますが、ペレさんの動画は面白い検証動画ばかりなのでこの動画で興味を持たれた方は是非他の動画も見てみてください。色違いポケモンが大好きな自分が特に面白かった動画とともに紹介しておきます。
ではまた!


www.youtube.com

www.youtube.com

*1:第5世代以降は20%以下

*2:もしかすると「処理の順番なんて関係あるの?」と思われるかもしれませんが、小数が出るたび切り捨てられる仕様から「レベル/100」を分数とみなすとレベルが100のとき以外必ず0になってしまいます。

*3:言っていることは一見すると難解ですが、要は正の数に対しては小数以下切り捨てと同じ意味です。なお、この関数のことを床関数と呼びます。

*4:×1.1と×0.9がぶつかったときは×1.0として計算されます。

*5:理由は動画を見ればわかるので見ていない方は是非!!