読者です 読者をやめる 読者になる 読者になる

突破率の概算【ポケモン】

折角開設したんで真面目な記事も書いてみます。

 

 

ポケモンにおいて、突破率の計算をしたことがあるだろうか。ダメージ計算ツールでも、突破率を示してくれるものが多いが、あらゆるパターンでの正確な突破率の導出をツールに任せるのは難しい。そこで、どこまで正しいか、また、どのパターンにおいてどんな概算ができるか分析してみる。

①同じ技を2回以上使った場合

例えば、C177サザンドラが227-150クレセリアに悪の波動を撃った場合。ツールには、突破率78.1%(図1)と出た。

図1.サザンがクレセに悪波×2を撃ったときの突破率

f:id:flyingbc:20170105213846j:image

しかし、これはステータスが一定のときにしか使えない(つまり流星群等ステータスが変わる技に同じ計算は不可)。

 

②同じ技だがランク補正等でステータスが変わる場合

では、ランク補正が絡んでくる場合はどうすれば良いだろうか。例えば、C182眼鏡ラティオスの流星群と同条件C-2ラティオスの流星群を185-85ドリュウズにぶつけたときの突破率を求める。

求め方の一つとして、ツールにC182+1ラティオスの流星群のダメージを計算すれば概算できる(68.8%、図2参照)。

図2.C+1ラティが流星群でドリュを突破する確率

f:id:flyingbc:20170105211742j:image 

+1とはステータスが1.5倍になったのと同義である。これは、素の状態(×1.0)とC-2の状態(×0.5)で撃ったときと同義といえる(1.0+0.5=1.5)。しかし、この方法は同じ技を使っていることが前提のため、全てにおいて使える方法ではない。

 

③異なる技を使った場合

では、異なる複数の技での突破率を導出する方法は何だろうか。次は、A200ガブリアスが167-170ギルガルド地震(図3)+ストーンエッジ(図4)を使ったときの突破率を導出する。

図3.ガブがガルドに地震を撃ったときのダメージ幅

f:id:flyingbc:20170105214634j:image

図4.ガブがガルドにエッジを撃ったときのダメージ幅

f:id:flyingbc:20170105214625j:image

ツールだけでは導出は不可能である(と筆者は考えている)。そこで、まずはそれぞれの最低ダメージ・最高ダメージを足してみる。つまり、

(134+22)~(158+26)=156~184

この太字の部分がギルガルドに与えられるダメージ幅と言えるだろう。全体のダメージ幅は156~184の29通り。ギルガルドのHは167であるため、与えられるダメージ幅のうちで突破できるダメージ幅は167~184の18通り。よってA200ガブリアスが167-170ギルガルド地震+ストーンエッジで突破できる確率は

18/29×100≒62.1%である。

 

と、ここまで突破率を書き連ねてきたわけだが、実は②、③は正確な値ではない。①は求めたい問題がそのままツールに反映されているため正確な値と見ていいだろう。

では、②、③の正確な値の導出方法は何だろうか。まず、ポケモンのダメージ計算は1回につき16通り(重複あり)の乱数が絡むことは良いだろうか(×0.85~×1.00)。すなわち、2回攻撃するということは16×16で256通り(重複あり)の乱数が絡むことになる。この256通りのダメージのうち、被弾側のHを上回っているものの数を数え、その数から256を割ることで正確な突破率を得られる(はず)。お気づきだろうか。人力で正確な値を導出するのは現実的ではない256通りなんて気が遠くなりそうである。ただし、コンピュータにやらせればこの程度一瞬である(①が正確な値と思った根拠はこれ。①の導出方法も多分同じ)。

 

/*-------

補足:②、③が概算でしかなかった理由(読まなくても多分大丈夫です)

②の概算は、本来256通りあるダメージのパターンを勝手に16パターンに減らしてしまった(計算が1回しかない)ため、正確な値とならなかった。

③の概算はちょっと面倒である。③の場合、156~184の値が連続であると仮定したのが正確な値を取れなかった原因。本来なら156以上184以下の中に256通りのダメージパターンが分散されている(つまり不連続である)。不連続な値を扱うにはそれぞれの値を総当たり的に調べなければならないため導出に時間がかかる。しかし、連続な値ならある点が分かればそこから道を辿っていけば良いためかける時間を少なくできる。このことから正確ではないがより簡単に突破率の導出が可能である。

 

連続:グラフで言えばとある点で途切れることがなく1本の線で描かれている状態(一次関数等中学生で習う数学はだいたいこれに当てはまる)⇔不連続

 -------*/