Agent of Divinity

ポケモンのクイズと特殊ルール

HP実数値に関する考察 ~「耐久指数が高いほど攻撃を耐えやすい」という誤解~

 

 

前置き

ツイッターを見ていたらHP調整に関する記事が流れて来た。どうもその記事は、「抜群技は常に偶数なのでHPはなるべく奇数にした方がよい」というツイートに対する反論として書かれたものらしい。記事の内容を要約すると、「大抵のポケモンはHPを奇数で止めるより、偶数にしてでも振り切った方が耐久指数が増えるので、偶数は避けない方がよい」という趣旨だった。記事そのものは、「抜群 ダメージ 偶数」などで検索すれば出てくる(2024/1/5時点)。ツイートの方も同じキーワードでツイート検索すれば出るはず。

さてこの偶数奇数問題、自分でもこれまで深く考えたことがなかったので、いい機会と思って検証してみることにした。本稿ではその成果を述べる。結論から言えば偶数とか奇数のような単純な話では済まず、上記ツイートと記事のどちらも正しいとは言えなかった。

 

耐久指数の話

そもそも耐久指数とは何かというと、ポケモンの耐久を抽象化することでダメージの概算に用いたり、異なる指数同士の大小関係を感覚的に把握するための道具であって、乱数1個ズレ2個ズレとかの厳密なダメージ計算に適用するものではない。ダメージ計算には幾度もの切り捨て処理が絡むため、額面上の指数と実際の確定数が常に連動するとは限らないからだ。
どうもツイート主も記事主も(あと両ツイートの読者も)、その辺りのことをきちんと理解していないように見える。

論より証拠ということで、実例を挙げる。
Hぶっぱと必要努力値が同じでより耐久が高くなると言われている、204-102-102という配分のマリルリがいる。このマリルリにC特化ハラバリー(実数値170)の10まんボルトを浴びせてみる(そんなハラバリーいないとかのツッコミは無視)。

同様に、207-100-100マリルリ(Hぶっぱ)。

おや。指数で劣るはずの207個体に軍配が上がってしまった。というわけで、これが「額面上の指数と実際の確定数が常に連動するとは限らない」の実例である。一々確かめるのが面倒なので他の例を探したりはしないが、少なくとも「指数が高い方がダメージ計算において有利にはたらく」とは言い切れないことがわかっていただけたはず。



余談:明日から使える豆知識

耐久指数を0.44で割ると、概ねそのポケモンが確定耐えする最大火力に変換できる。はっきり言ってこの豆知識の方が、下で長々と喋ってる部分よりよほど価値がある。さっきのハラバリーもこの方法で探した。

前提知識

さて。耐久指数が信用できないとすれば、どういう配分が最もダメージを効率的に耐えられるのか?これこそが今回の主題である。この問題を考えるため、まずは前提知識を整理していきたい。

ポケモンのダメージ計算式において、タイプ相性による2倍・4倍・1/2倍・1/4倍はダメージ計算の最後に行われ、タイプ一致補正の1.5倍はその直前に挿入される。
※例外として、タイプ相性より後に行われる補正(命の珠など)もわずかに存在するが、話がややこしくなるため本記事では考えないものとする。同様に、定数ダメージについても考えない。

そして、ダメージ計算では小数が出ると、ほとんどの場合即切り捨てされる。つまり、タイプ一致をかける直前の数字が100なら、一致抜群としてのダメージは100×1.5×2で300。101であれば151.5を一旦切り捨てして151にした後、改めて2をかけて302となる(単純に101×3とはならない)。もし一致抜群ではなく一致半減であるなら、どちらの場合も最終ダメージは75。

次からがいよいよ本番である。この前提知識をもとに、各タイプ相性ごとのダメージがどのような値をとるか以下に示す。


一致等倍技のダメージ:3n、3n+1(=6n、6n+1、6n+3、6n+4)
↑それぞれ、1.5をかける前の数字が4n、4n+1、4n+2、4n+3。いかなる整数も1.5倍してから小数を切り捨てた場合、6n+2や6n+5にはならない。

一致抜群技のダメージ:6n、6n+2
↑それぞれ、2をかける前の数字が3n、3n+1。3n+2は上記の理由により存在しない。

一致4倍技のダメージ:12n、12n+4
↑それぞれ、2をかける前の数字が3n、3n+1。3n+2は上記の理由により存在しない。

一致半減技のダメージ:3n、3n+1、3n+2
↑それぞれ、0.5をかける前の数字が6nおよび6n+1、6n+3、6n+4。6n+2や6n+5は上記の理由により存在せず、よって3nは他の二つと比べて2倍の割合で発生する(=発生率が同様に確からしくない)。

一致4分の1技のダメージ:3n、3n+1、3n+2
↑それぞれ、0.25をかける前の数字が12nまたは12n+1または12n+3、12n+4または12n+6または12n+7、12n+9または12n+10。12n+2、+5、+8、+11は存在せず、よって3n+2は他の二つと比べて2/3の割合でしか発生しない(=発生率が同様に確からしくない)。

不一致抜群技のダメージ:2n

不一致4倍技のダメージ:4n

不一致等倍技のダメージ:任意の自然数

不一致半減技のダメージ:任意の自然数

不一致4分の1技のダメージ:任意の自然数





検証パート

上記をもとに、どの技を受ける時にどういうHPが理想なのかシミュレートする。

case1)一致等倍1発
3nまたは3n+1ダメージ。よって確定数が変動するのは、HPを3nから3n+1に上げた時か、3n+1から3n+2に上げた場合のみ。3n-1を3nに上げても意味がない。

case2)一致等倍2発
乱数幅次第なので場合によるとしか言えないが、概ね1/4の確率で3nか3n+2ダメージ、1/2の確率で3n+1ダメージになるはず。一致等倍を2発受けることに関しては、HP=3n+2が最も努力値に対する確定数の変換効率が良いといえる(3n、3n+1でも確定数は動きうる)。

case3)一致等倍3発
およそ1/4の確率で3nに、3/8の確率で3n+1か3n+2になる。HPは3nか3n+2が変換効率が良い(3n+1でも動きうる)。

case4)一致等倍4発
およそ5/16の確率で3nまたは3n+1に、6/16で3n+2になる。HPは3nが効率が良い。とはいえ発生率は5:5:6という微々たる差で、しかも一致等倍を4発も耐えること自体非常に稀なため無視して構わない。


case5)一致抜群1発
6nまたは6n+2ダメージ。確定数が変動するのは、HPを6nから6n+1に上げた時か、6n+2から6n+3に上げた場合のみ。それ以外は意味がない。換言すれば、6n+5は奇数ではあるものの、一致抜群を耐える可能性には寄与しない(一部の人間に好まれるHP191は、一致抜群を耐えるうえでは189と等価)。

case6)一致抜群2発
およそ1/4の確率で6nまたは6n+4に、1/2で6n+2になる。HPは6n+3が最も効率が良く、偶数は意味がない。

case7)一致抜群3発
およそ1/4の確率で6nに、3/8の確率で6n+2または6n+4になる。HPは6n+3か6n+5が最も効率が良く、偶数は意味がない。

case8)一致抜群4発
そんなに耐えるならもう勝ってる。


case9)一致4倍1発
12nまたは12n+4ダメージ。確定数の変動は12n+1と12n+5のみ。それ以外は意味がない。


case10)一致半減2発
およそ6/16の確率で3nに、5/16の確率で3n+1または3n+2になる。HPは3n+1が効率が良いが、あまり差はない。滅多にないと思うが、一致半減1発を耐えるには3n+1が効率が良い。

case11)一致半減3発
およそ22/64の確率で3nに、21/64の確率で3n+1または3n+2になる。HPは3n+1が効率が良いが、シチュエーション自体の希少さも含め、誤差と断言して差し支えない。


case12)不一致抜群1発=等倍2発
2nダメージ。偶数は意味がない。

case13)不一致抜群2発以上
およそ1/2の確率で4nまたは4n+2になる。偶数は意味がなく、奇数ならどれも効率は同じ。

case14)不一致4倍1発
4nダメージ。4n+1以外は意味がない。


case15)一致等倍1発+一致抜群1発

一致等倍1発は6n+0/1/3/4(等確率)。
一致抜群1発は6n+0/2(等確率)。
なので、合算結果は

6nダメージ…およそ1/4の確率で発生
6n+1ダメージ…およそ1/8の確率で発生
6n+2ダメージ…およそ1/8の確率で発生
6n+3ダメージ…およそ1/4の確率で発生
6n+4ダメージ…およそ1/8の確率で発生
6n+5ダメージ…およそ1/8の確率で発生

HPは6n+1か6n+4が効率が良い。

case16)一致等倍1発+不一致抜群1発

一致等倍1発は6n+0/1/3/4(等確率)。
不一致抜群1発は6n+0/2/3(等確率)。


合算結果は6n+0~5が均等に発生。
HPはなんでもよい。


case17)一致半減1発+一致抜群1発

一致半減技は
6n…2/8
6n+1…1/8
6n+2…1/8
6n+3…2/8
6n+4…1/8
6n+5…1/8

一致抜群は6nか6n+2(等確率)。よって合算結果は

6nダメージ…およそ3/16の確率で発生
6n+1ダメージ…およそ2/16の確率で発生
6n+2ダメージ…およそ3/16の確率で発生
6n+3ダメージ…およそ3/16の確率で発生
6n+4ダメージ…およそ2/16の確率で発生
6n+5ダメージ…およそ3/16の確率で発生

HPは6n+0、1、3、4が効率が良い。

case18)一致半減1発+一致等倍1発

一致等倍1発は6n+0/1/3/4(等確率)。よって合算結果は

6nダメージ…およそ6/32の確率で発生
6n+1ダメージ…およそ6/32の確率で発生
6n+2ダメージ…およそ4/32の確率で発生
6n+3ダメージ…およそ6/32の確率で発生
6n+4ダメージ…およそ6/32の確率で発生
6n+5ダメージ…およそ4/32の確率で発生

HPは6n+1、2、4、5が効率が良い。

case19)一致半減1発+不一致抜群1発
不一致抜群は6n+0/2/4(等確率)。合算結果は6n+0~5が均等に発生。
HPはなんでもよい。


case20)不一致等倍以下+何か
ダメージは任意の自然数。HPはなんでもよい。

その他のケース)面倒なのでご自身でやって下さい。

 

まとめ

以上がポケモン対戦で主に想定されるダメージ値と、それに対する効率的なHP配分。この中でも特に重要そうな部分だけ抜き出すと

case1)一致等倍1発:3n+1、2
case2)一致等倍2発:3n+2(それ以外もある程度許容)
case5)一致抜群1発:6n+1、3
case6)一致抜群2発:6n+3(1、5もある程度許容)
case9)一致4倍1発:12n+1、5
case12)不一致抜群1発:2n+1
case14)不一致4倍1発:4n+1
case15)一致等倍1発+一致抜群1発:6n+1、4(それ以外もある程度許容)
case17)一致半減1発+一致抜群1発:6n+0、1、3、4(それ以外もある程度許容)
case18)一致半減1発+一致等倍1発:6n+1、2、4、5(それ以外もある程度許容)


総合すると、大体次のようになる。

①1発耐えるのが重要なポケモン(4倍弱点なしor突かれにくい)→6n+1。次点で6n+2、3、5。


②1発耐えるのが重要なポケモン(4倍弱点突かれやすい)→12n+1、12n+5。次点で12n+9。


③等倍技を何発も耐えたいポケモン→3n+2。


④抜群技を何発も耐えたいポケモン→6n+3。次点で6n+1、5。


⑤受け出し(or耐性変更テラス)から続けて攻撃を耐えたいポケモン→6n+1、6n+4。

⓪逆に避けるべき数値→6n
※一致等倍1発、一致抜群1発、一致4倍1発以上、不一致抜群1発以上、不一致4倍1発以上において6n-1と変わらず、それ以外の技においても有利にはたらくケースがほぼない。先に取り上げた204配分のマリルリも6nであるため、多くの場面で実数値を無駄にしてしまい、額面通りの耐久を発揮しづらくなっている。マリルリは元来①と⑤の性質が強いポケモンであり、HPを207付近まで振りたければ205にするのが効率的といえる(腹太鼓は定数ダメージゆえ今回は考慮外)。

一方、不一致等倍or半減技を必ず1回以上受ける前提なら効率のよいHP実数値は存在しないことになるので、Hぶっぱで可能な限り耐久指数を伸ばすという考え方もなしではない。もっとも、どのみちHPとBDを1ずつ入れ替えた程度では耐久指数の変化など誤差レベルでしか起こらないし、そもそも不一致等倍以下を受けるシーンもそれほど多くはないため、基本的には6n+1などのHP効率を優先した方がよいと思う。無論、絶対に上記を満たせという話ではなく、個別の調整先がある場合はそちらを優先すべきだし、むしろ普通はそうなるはず(マリルリも207でないと耐えない攻撃があるならそこまで振るべき)。こういう意識が活きるのは、ASorCS252振りして余り4を振る箇所を考えるときか、H252D4とH244D12のどちらが良いかを考えるときぐらいだろう。

 

 

最後に

当方文系で数学は大の苦手であるため、記事の内容に誤りがあった場合、コメントかツイッター(@driftblimp)で指摘していただけると嬉しいです。


 

 

 

2024/1/16追記

「前置き」で触れた記事主の方から反応があった。以下がそのツイートの全文。

 

中々手間がかかる計算をしていて為になるなという感想なんですが、
・不一致等倍技や半減技を受けない想定
・アイテム補正を排除している
という点から実際は記事内のようなダメージの偏りは無くて、耐久指数=耐久と言ってもほぼ差し支えないと思います
(下は記事から引用させていただきました🙇)

※リンク*1

 

また、冒頭で触れている207マリルリと204マリルリの例についてですが、これについてはポケモンのダメージ計算の仕様上耐久指数が高くても攻撃を耐えない事が起こりえるためであって、通常は204マリルリの方が技を耐えます。

※リンク*2

 



趣旨を要約すると、
⑴実戦では不一致等倍以下を受けるため、ダメージ値の偏りは発生しない
⑵アイテム補正を考慮できていない
マリルリは204の方が基本的に硬い

の三点に集約される。

見たところ、一部説明をはしょったせいで妙な誤解を生んでしまっているようなので、この追記欄にて補足する。

まず⑴について。「まとめ」の項で述べたように、不一致等倍以下を受けたときは偏りが起こらず、受けない場合は多くが偏る。今回調べたかったのは、「偏りが起こるケースではどのようなHPが理想か」であって、偏りが起こらないときは理想のHP自体が存在しない(しつこいが定数ダメージなどは考慮外)。
では偏ることを見据えたHPにするか、それとも偏らない場合を意識するかというのは、もう個人の見解によるとしか言えない。少なくとも実戦においてはどちらも起こりうる事象なので、あとは個々のプレイヤーが自身の使用ポケモンそれぞれに対して、どちらの方が多くなりそうか考えるしかない。筆者は基本的に前者が多くなりそうだと考えているが、記事主のように不一致等倍以下の被弾を重視し、耐久指数を高めるという選択ももちろんありうる。一応、「6n+1などのHP効率を優先した方がよい"と思う"」という言い回しにその意図を込めたつもりだったのだが、かなり伝わりづらい表現であったことは否めない。この場を借りて訂正し、プレイヤー個人の裁量に委ねられる部分であることを改めて強調しておきたい。

また、筆者は気が向いた時にシングルバトルをプレイする程度のエンジョイ勢なため、記事の説明も全体的にシングルに寄っている節があった。ダブルバトルでは猫騙しという不一致等倍で受けやすい技があるので、ダブルプレイヤーの方にはあまり参考にならない内容だったかもしれない。想定するルールを明記しなかったのは筆者の完全な落ち度であり、こちらについても深くお詫び申し上げる。


⑵について。これは先に言っておくが、記事主が明確に間違っている。筆者は本稿において、メトロノーム・たつじんのおび・いのちのたま・半減実以外のすべての対戦用アイテムを考慮に入れている。なぜなら、その他のアイテムはすべて、タイプ一致補正以前に計算されるからだ。

詳しく説明するときわめて冗長になるため敢えて記載しなかったのだが、ダメージ計算式には徹底した計算手順がある。
大雑把にいうと(22×AC×威力÷BD÷50+2)×乱数(0.85~1)×タイプ一致×タイプ相性=ダメージであり、常に左から右へと計算され、いかなる場合も順序が入れ替わることはない。火力変動にかかわる要素(=持ち物、特性など)のほとんどは乱数より前に算入され、小数が出れば即切り捨てor四捨五入or五捨五超入されて整数へと変換される。よって、先に挙げた4種以外のアイテムがいくら計算に絡もうと、タイプ一致補正をかける時点では綺麗な整数にしかならない。考慮に入れていないのではなく、入れても結果は同じということだ。


各要素の補正位置については、

ダメージ計算式 - ポケモン対戦考察まとめWiki|最新世代(スカーレット・バイオレット)

を参照している。ダメージ計算の手順についてもより詳細に解説されているので、興味のある方はぜひ。

参考までに、第9世代の対戦である程度発生すると思われる補正のうち、タイプ相性補正より後にくる(=今回の検証結果を書き換える可能性を秘めている)ものを抜き出すと、以下の通りになる。

リフレクター/ひかりのかべ/オーロラベール
アクセルブレイク/イナズマドライブ
マルチスケイル
フレンドガード
たつじんのおび
いのちのたま
半減きのみ
やけど


逆に、より前に来る(=書き換える余地がない)もの。

そうだいしょう
ちからずく
アナライズ
きれあじ
テクニシャン
パンチグローブ
プレート等、タイプ強化アイテム
はたきおとす
てだすけ
ワイドフォース
からげんき
フィールド補正

わざわいのうつわ/わざわいのおふだ
クォークチャージ/こだいかっせい
トランジスタ/りゅうのあぎと
ハドロンエンジン/ひひいろのこどう
こんじょう
もらいび
ちからもち
すいほう
あついしぼう
たいねつ
きよめのしお
こだわりハチマキ/こだわりメガネ

わざわいのたま/わざわいのつるぎ
しんかのきせき
とつげきチョッキ

すなあらし/ゆき

複数対象(※ダブル)
はれ/あめ
きょけんとつげき
急所
乱数



これを見れば、「わずか」と呼んで考慮から外した理由がわかっていただけると思う。無論、マルチスケイルやいのちのたまが対戦において強力なことは事実であり、時間さえ許せばこうした例外事項について再考してみるのもやぶさかではない。

また、本稿はタイプ一致補正をかける前(=乱数をかけた直後)の自然数がランダムであることを前提に書かれている。しかし、乱数幅は0.85~1とある程度の規則性があり、その規則を考慮すればここの箇所でも偏りが生じることを発見できるかもしれない。どうすればいいか筆者の頭では見当もつかないため、どなたか数学の得意な方にぜひお願いしたい。
(↑この追記で一番重要)


⑶についてはその通りというか、そもそも筆者は204マリルリを「額面上の指数と実際の確定数が常に連動するとは限らない」の実例として挙げただけで、常に207個体より不利などとは一度も発言していない。耐久指数が高いのだから有利な確定数が出るのはごく自然なことだ(それはそれとして、カミの持ち物が珠なのは⑵をまるで理解していないことの証左)。




最後に、上述の内容も含め記事全体を総括して終わりにする。

今回の目的はダメージ値に関する普遍的な法則を見つけるという所にあり、例外的な事象である珠や定数ダメージは無視してそちらにのみ注力した。耐久指数と確定数の関係については深く考察していないし、出来る能力もない。
そして再三言うように、努力値配分で最も重要なのは個別の仮想敵に対する具体的な確定数であり、総合耐久指数も、本記事の推奨する6n+1や3n+2調整なども、そちらに対して優越することは決してない。「まとめ」でも述べた通り、あくまで「余った4をどこに振ればいいか」程度の話を無理矢理広げているだけである。読者の方々におかれては、本稿を鵜呑みにせず、ご自身の手で実際にダメージ計算をして最適な配分を見つけることをお勧めする。



 

 

さらに追記

親切なフォロワーの方が、乱数をかけた直後の数字について検証してくださいました!

 

これによると乱数をかけた直後の結果は、4n+0,2が4n+1,3に比べ若干多い傾向にあるとのことです。これが本当なら、一致等倍技は3n+1より3nが若干多くなると思われます。ただし、ご本人も仰っている通り両者の差は僅かのようで、かつ範囲によりそうでもあるため、実質的にはあまり気にしなくてよさそうです。

ウドンゲさん、本当にありがとうございました。