FC2ブログ

記事一覧

ニンフィア・カミツルギの耐久調整 ―― 総合耐久指数


1年近くほったらかしにしていたブログです。
ほっといたらorasではなくサンムーンが発売されてしまいました。自分は相変わらずダブルバトルで雨パを使っており、シーズン2の最終レートは2位でした。1位を目指すかどうか悩んだんですが、あそこまでレートが上がると、試合すれば期待値では絶対にレート下がりますからね……7割以上勝つことは可能でも、負けて下がるレートが勝って上がるレートの3倍以上ある世界で戦い続ける度胸はありませんでした。多分、あと3勝くらいで1位だったんですが。


まあそれはそれとして、書いておきたいことができたのでこうして文章にしておきます。
1年前の書いた「H=B+D」の発展形で、今回のテーマは「HBの比率」です。対象になるのはおおむねニンフィアとかカミツルギとかで、これ自体はそこまで一般性の高いテーマではありません。ただ、「総合耐久指数」という、非常に多くのケースで役に立つ考え方を利用しているのでここで取り上げることにしました。この考え方は調べた限りではどこにも載っておらず、自分が勝手に作り出した理論です。割と単純な話なんですが、こういう考え方をする人ってポケモン世界にはあんまりいないんですよね。

ちなみに、HB+HDのことを総合耐久指数と呼んでいる人もいるみたいですが、これはあんまり意味がない数値です。HB+HD=H(B+D)なので、BDの和が一定である限りは両者の割り振りに関係なくなる値です。つまり、Bに振ってもDに振っても値が変わらない数字ですから。


これの定義の話は後でしましょう。まずは、具体例としているニンフィアやカミツルギの耐久調整の話です。
この2体に共通していえるのは、BDのどちらかが非常に高く、もう片方が極端に低い、ということです。無振り時の能力の実数値を並べてみると、

 sylveon.gif  ニンフィア:H170-×-B85-C130-D150-S80

kartana.gifカミツルギ:H134-A201-B151-×-D51-S129

となります。

前回の記事では、基本的にH=B+Dになれば最も耐久効率がいい、という話をしましたが、双方とも、HPに極振り(HP+32)でBDを無振りにしてもB+Dの値の方が大きいので、それを実現するのは無理です。ならばそれに少しでも近付けられるようにHP極振りだけしておくのがベストなのか? というと、必ずしもそうとは言い切れない、というのが今回の話です。

ではどうするのがベストなのかといえば、結論だけをいえば、「場合による」です。いわれなくてもそれくらいは分かるという話ですが、「どういう場合ならばどうするのがベストなのか」というものを明確に定めることはなかなか難しいでしょう。
この場合に問題になるのは、「特殊攻撃と物理攻撃を受ける比率がどうなっているのか」ということです。凄く単純な例として、特殊攻撃しか受けないケースを考えてみましょう。
この場合、防御に振るメリットは皆無です。なので振るとすればHPか特防の2択ということになります。特殊耐久は特殊耐久指数(HP×特防)で表せ、また、耐久に回せる努力値を256(能力値に合計+33)に限定します。Dを+d、Hを+hするように努力値を振るとすると、

ニンフィアに関しては、
HD=(170+h)×(150+d) :h+d=33、h≧1、d≧1
HD=(170+h)×(150+(33-h))=31110-13h-h^2=-(h-6.5)^2+31152.25 :1≦h≦32

より、h=6,7 d=27,26(H=175,176 D=176,175) でHDは最大

カミツルギに関しては、
HD=(134+h)×(51+d) :h+d=33、h≧1、d≧1
HD=(134+h)×(51+(33-h))=11256-50h-h^2=-(h+25)^2+11881 :1≦h≦32

より、h=1 d=32(H=135 D=84)でHDは最大

となります。
まあこれは計算するまでもない話です。「2つの数の和が決まっている時、その積を最大にするためには2つの数字が等しくなれば良い。等しくできない場合は可能な限り近付ければよい」という中学生にでも分かる理屈です。

問題はここから先です。物理攻撃と特殊攻撃の両方を受ける場合はどうすればよいか? これを定めるにはあるモデルを立てる必要があります。
例として、「物理攻撃と特殊攻撃を全く同じ比率で受けるケース」を考えます。これが実態に即しているかどうかというと微妙な所なんですが、これまた色々計算してみれば、実は割と現実に近いモデルでもあります(これについて書くと長くなるのでまた別の記事で)。

瀕死になるまでに物理、特殊ともにSの火力指数を受けたものとします。

火力指数が耐久指数に届いた際に瀕死になるわけですから、火力指数を耐久指数で割ったものが最大HPに対するダメージの比率ということになります。つまり、Sの火力の物理技によってS/HBのHPが削られ、Sの火力の特殊技によって、S/HDが削られた結果、HPが0になった、ということです。これを式にすると、

S/HB+S/HD=1

となります。すると、

S(1/HB+1/HD)=1
S=HBD/(B+D)

となります。
このHBD/(B+D)のことを、自分は「総合耐久指数」と呼んでいます。これの意味する所は、「物理攻撃と特殊攻撃を全く同じ比率で受ける場合、瀕死になるまでに受けた火力の量」です。

これはポケモンにおいて非常に有用な概念です。ニンフィアたちの耐久計算に留まらず、他にも色々な計算に使えるんですが、今回はひとまずそれについては取り扱いません。


基本的に、このSが最大になるように耐久を調整すれば、物理特殊を同じ比率で受ける時の耐久力が最大になる、といえます。そこで、どこに振れば最大になるかを考えます。ひとまずは、HとBDの片方を定数として、これをBとDで微分してみましょう。

dS/dB=d/dB(HBD/(B+D))=(HD(B+D)-HBD)/(B+D)^2=(HD^2)/(B+D)^2
dS/dD=d/dD(HBD/(B+D))=(HB^2)/(B+D)^2


よって、B<DならばdS/dD<dS/dB、D<BならばdS/dB<dS/dDとなります。
まあ、これは「能力値が低い方に振った方が得」という、小学生でも分かる話です。一応こうして数式で証明しておきました。
ニンフィアやカミツルギの場合はBDの低い方に極振りしてももう片方の実数値に届きません。すなわち、大きい方の能力値は一切振る必要がない、ということになります。まあこんな計算をしなくても、ニンフィアの特防やカミツルギの防御に振ったら損だということはみなさんも直感的に分かると思います。

さて、ニンフィアの場合、Dに振る必要がないわけですから、振るのはHかBのみということになります。振れる努力値の量が決まっているので、H+B=Xという定数とします。
このとき、今度はHではなくXを定数として微分すると、

dS/dB= d/dB(HBD/(B+D))= d/dB((X-B)BD/(B+D))

これを頑張って計算すると(長くなるので計算過程は省略しますが、高校生レベルの微分計算で済みます)

dS/dB=-D(B^2+2BD-XD)/(B+D)^2

となります。

dS/dB=0のとき、Sは最大となるので、
dS/dB=-D(B^2+2BD-XD)/(B+D)^2=0
B^2+2BD-XD=0
B= (D^2+XD)^(1/2)-D


となるとき、総合耐久指数は最大となります。これにニンフィアの実際の数値を当てはめます。Dは150、Xは無振り時のHBの実数値の和+努力値による上昇分なので、X=170+85+33=288を代入して、

sylveon.gif

ニンフィアの理想耐久値:B=106.3、H=181.7

が理想値ということが計算されました。
整数にする必要があるので、この場合は素直に四捨五入してB=106、H=182とすればよいでしょう。ニンフィアの場合は Bに84、Hに172振りで実現できるのでこれが理想値となります。

カミツルギの場合も同様に計算しましょう。基本的にBDが逆になっているだけですから、

D= (B^2+XB)^(1/2)-B

となるときに総合耐久指数が最大となります。B=151、X=218を代入して、

D=85、H=133

が理想値であると計算されました。しかし、カミツルギの場合はDに極振りしてもこの実数値になりません。なのでこの場合は少しでもこれに近付けるよう、Dに252振り、Hに4振りしたものが理想値となります。
kartana.gif

カミツルギの理想耐久値:D=83、H=135


結論をまとめます。
「物理攻撃と特殊攻撃をくらう比率が全く同じで、耐久に振る努力値を256に限定した場合、ニンフィアの能力はH=182、B=106、D=150が理想。カミツルギは:H=135、B=151、D=83が理想」


さて、これまでの話は物理と特殊を全く同じ比率で受けるとした場合の計算です。現実にはそんなことはない(まあ、厳密に一致はせずともそこそこ近いことにはなっているんですが)わけで、もう少し一般性の高い計算をできないか? というと、計算はめんどくさくなりますが、これまでの考え方を応用すれば理屈自体は割と簡単に作れます。その話をしてひとまずの終わりとしましょう。


物理攻撃と特殊攻撃を受ける比率を1:kとします。仮に瀕死になるまでに受けた物理攻撃の火力指数をSとすると、

S/HB+kS/HD=1
S(1/HB+k/HD)=1
S=HBD/(kB+D)


より、HBD/(kB+D)が最大となるとき、実質的な耐久が最大となります。
あとの理屈は同じで、SをHBD/(B+D)からHBD/(kB+D)に置き換えた計算をすれば理想的な耐久の数値が求まります。


いかがでしたか?
高校レベルの数学ができれば分かる話なんですが、ポケモンにおいてこの手の考察をしている人って自分の知る限りでは全くいないんですよね。具体的な数値だけ示して定量的な理屈を伴わないことが多いです。

自分は「~耐え調整」とか「~を確定1発調整」という類の調整を一切行いません。どれだけ多いポケモンだろうが毎試合みるわけでもないし、数が多いポケモンほど相手が自分の想定した通りの振り方をしている可能性は低いし、その他のポケモンの攻撃を受ける機会の方が遥かに多いし、調整しなかったとしても乱数で普通に耐えられることも多いと思うからです。仮に耐え調整が努力値が5ずれたとしても動く乱数はせいぜい10%程度のものです。まず「そのポケモンと当たる」確率を1/2、自分が想定した通りの振り方をしている」確率を1/2、「そのポケモンの攻撃を受けることになる」確率を1/2とすると、その5の値を変化させるのは100試合に1回程度しか意味を持たない調整ということになります。これでもかなり大きめに計算した結果で、実際問題はその半分以下でもおかしくありません。そういう限定的な状況を考えるのではなく、全てをひっくるめた一般的なモデルを構築しようというのが自分のポケモンに対する基本的な姿勢です。

さて、まだ書きたいテーマはいくつか残っていますが……とりあえずは、今回話した「物理と特殊攻撃を受ける比率」に関する議論が最優先ですかね。今回ほどは面倒な数式は入り乱れないつもりです。他には、「耐久と火力の比率の考察」「素早さに関する考察」「立ち回りの理論」辺りが大きなテーマです。
スポンサーサイト



コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: 質問

はい、そうなります。B=(D^2+XD)^(1/2)-D(B<Dの時)を変形すればその式になります。ただ、実際に努力値計算をする際にはXが入った今の形の方が計算しやすいと思うので、この形にして記載しました。dS/dB=dS/dHを解けば求まるからそっちの方が分かり易いかとも思ったんですが、耐久努力値を振る時に最初に持っている情報はHBの和とDですから、結局XとDの形の式に変形する必要があるので、結論だけ理解するならこっちの方が手っ取り早いかなと考えました。

No title

1つ意見です。
仮に「常に物理耐久指数か特殊耐久指数のどちらか低い方を突かれる」事を想定した場合、H=2B=2Dが真の理想値だと思いますが、どうでしょう?

Re: No title

> 1つ意見です。
> 仮に「常に物理耐久指数か特殊耐久指数のどちらか低い方を突かれる」事を想定した場合、H=2B=2Dが真の理想値だと思いますが、どうでしょう?

一つ目に、その想定は通常意味がありません。「常に耐久指数の低い方をつく」というのはこちらの努力値の振り方を事前に相手が知っていなければ不可能です。
二つ目に、その想定をした場合、自由に能力を割り振れるのならばH=2B-2Dが理想になりますが、大半のポケモンの場合は「B=Dになるまで能力の低い方に振って残りをHPに振る」という形にしかなりません。常識的に考えてポケモンは物理攻撃と特殊攻撃両方受ける可能性があるわけで、その場合にはその振り方は効率が悪くなる可能性が高いです。ならばどの程度HPに振ってどの程度物理特殊の低い方に振るのが効率がいいのか、という考察をしたのがこの記事です。
三つ目に、H=2B=2Dが実現できるポケモンの場合は、この記事の結論である「B= (D^2+XD)^(1/2)-D」を変形すればその形になります。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: タイトルなし

> カビゴンのH,B,Dに努力値252を自由に振り分けたい時、H=B+Dに近いH=241,B=112,D=130とするよりも、HBD/(B+D)が最大となるH=236,B=117,D=130とした方が良いということでしょうか?それならば、H=B+Dにすると効率がいいというのは、どう意味での話なのでしょうか?

http://firefly1987.blog.fc2.com/blog-entry-17.html に詳しく書いていますが、H=B+Dにすると効率がいい、というのは「自由にHBDを振り分けられるなら」という話です。カビゴンに関して言えば、「H=236,B=117,D=130」よりも、それとBDの比率が(ほぼ)同じでかつH=B+Dを(ほぼ)満たしている「H=241,B-115,D-127」の方がいいことは確実だ、というのが「H=B+Dを満たした方が効率がいい」ということの意味です。しかし、後者は種族値の制約で実現できないので「H=236,B=117,D=130」で我慢することになるわけです。

初めまして、いつも参考にさせていただいております。
ニンフィアの努力値振りの部分ですが、182-106を再現するのに必要な努力値はHに92、Bに164なので記載が間違っていると思われます。

Re: タイトルなし

> 初めまして、いつも参考にさせていただいております。
> ニンフィアの努力値振りの部分ですが、182-106を再現するのに必要な努力値はHに92、Bに164なので記載が間違っていると思われます。

ご指摘ありがとうございます。修正しておきました。
我ながらこういうミスが多いな……

ツール作成に関するご許可のお願い

初めまして、ポケモン徹底攻略の運営をしておりますやっくんと申します。
非常に分かりやすく有益な記事で勉強になりました。ありがとうございます。
個人的にダブルで遊ぶことが多いので、以前からこちらの記事を参考にHBD/(B+D)が最大になるような耐久調整を行っており、とても助かっております。

私のサイトには、努力値の振り方を支援するツールがなく、望む声がたくさん寄せられてきました。
そこで、HBD/(B+D)の最大化をベースに、簡単・柔軟に耐久調整などを考えられるツールを作りたいと考えております。
こちらの記事へのリンクとともに、ツールを公開させて頂くことは可能でしょうか?

何卒よろしくお願いいたします。

Re: ツール作成に関するご許可のお願い

>初めまして、ポケモン徹底攻略の運営をしておりますやっくんと申します。
>非常に分かりやすく有益な記事で勉強になりました。ありがとうございます。
>個人的にダブルで遊ぶことが多いので、以前からこちらの記事を参考にHBD/(B+D)が最大になるような耐久調整を行っており、とても助かっております。

返信遅れました。
ありがとうございます。


>私のサイトには、努力値の振り方を支援するツールがなく、望む声がたくさん寄せられてきました。
>そこで、HBD/(B+D)の最大化をベースに、簡単・柔軟に耐久調整などを考えられるツールを作りたいと考えております。
>こちらの記事へのリンクとともに、ツールを公開させて頂くことは可能でしょうか?


既に公開した内容なので、リンクも含めて自由に使用していただいて構いません。

Re: ツール作成に関するご許可のお願い

ジロウ様
ご承諾頂きまして、ありがとうございます!
ツールができましたら、リンクとともに公開させて頂きます。
貴重な解説記事、誠にありがとうございます。

No title

質問なのですが、
ダメージ計算式を見ると
ダメージ = (((レベル × 2/5 + 2) × 威力 × A/D) / 50 + 2) × M
となっており最後に各種ダメージ補正を掛ける前に2を足しているので、
総合耐久指数が最大となる配分よりも実際は若干それよりも多くHに振った方が理想に近い配分であるということにはなりませんか?

参考サイト
https://wiki.xn--rckteqa2e.com/wiki/%E3%83%80%E3%83%A1%E3%83%BC%E3%82%B8
https://rei-zouko.hatenadiary.org/entry/20140319/1395211424

Re: No title

>質問なのですが、
>ダメージ計算式を見ると
>ダメージ = (((レベル × 2/5 + 2) × 威力 × A/D) / 50 + 2) × M
>となっており最後に各種ダメージ補正を掛ける前に2を足しているので、
>総合耐久指数が最大となる配分よりも実際は若干それよりも多くHに振った方が理想に近い配分であるということにはなりませんか?

返信遅れました。
厳密にいえばご指摘の通りです。ただ、その「若干」がどの程度なのか、というのが攻撃を受ける回数によって変わってきてしまうので、定量的な評価が困難です。なので記事の中では結論の出ない点には触れないことにしています。

No title

やはりそうですよね。気になっていたので確認させていただきました。ご返信ありがとうございました!

コメントの投稿

非公開コメント