お久しぶりです。剣盾に関して、自分はメタモンやらなんやらの厳選環境は大体揃ったかなくらいの感じですが、対戦に関してはまだ色々と手探りな面はあります。ダイマックスは相当影響力が大きいシステムですからね。GSルール以上の怪獣大決戦と化すとなると、これまでの諸々の常識は通用しなくなるでしょう。まあそれでも、いつもと変わらず、自分にできることはただ一つ、『ひたすら考える』だけです。
とりあえず、イーブイバトンがお亡くなりになった今作では、自分は完全にダブルバトル専門になるんじゃないかなという気はしています。あれがシングルバトルで唯一の『ポケモン同士の相互作用に特化したパーティ』だったんですよね。シングルでも何か面白いパーティがないかと考えはしますが、いわゆるグッドスタッフ的なパーティは考えていてもあんまり楽しくないので、多分天啓は訪れないと思います。
今回はパーティ構築に関する話をしようかと思っていたんですが、それをしようと思ったら具体例として示すためのパーティが必要です。どうせならダイマックス云々の話もしようと思うので剣盾のパーティの方がいいとは思うんですが、まだレートに本格的な参戦もできておらず、例として示せるパーティがない状態なので、ひとまずその話は置いておくことにします。
このブログを作った当初に考えていた理論については既に紹介し終えています。おおむね努力値の振り方に関する話です。ただ、自分で記事を読み返していたら、読者には若干結論を誤解されている部分もあるんじゃないかという気もしました。記事の数が多くなったということもあって、一回は一通りの記事のおさらいと補足をしておいた方がいいんじゃないか、ということでこうして筆を執りました。
今回は、『H=B+D』と『総合耐久指数』の2つの記事で解説してきた、耐久調整に関する話の発展系です。
とりあえずは元記事を読んでいる前提として解説します。
まず前者に関しては、多分、このブログ以外でも解説している記事は結構多いんじゃないかと思います。『ポケモンの耐久値を振り分ける際、H(HP)=B(防御)+D(特防)に近付くほど耐久値の効率が良くなる』という理論で、自分も『受けるダメージが防御・特防に反比例する』ことを知った段階で『まあ、そうなるんだろうな』と思ってすぐに証明しようとしました。当時(中学生か高校生)の自分がすぐに思いついた証明方法は下のようなものです。
物理攻撃で受けるダメージがBに比例するのなら、ある火力Xを受ける時に受けるダメージをX/Bとおける
これがHPに達した時に瀕死となるため、H=X/Bとすると、X=HBとなった時にポケモン瀕死になる
瀕死にするまでに必要な火力の量が高い=耐久力が高いなので、HBを実質的な物理攻撃に対する耐久力をみなせる
同様に、HDを実質的な特殊攻撃に対する耐久力とみなせる
これを足し合わせた値はHB+HD=H(B+D)
H+B+Dが定数だとすると、H+(B+D)も一定
和が一定の2つの数の積は、2数が等しいときに最大となるので、H=B+DのときにH(B+D)も最大となる
よって、H=B+Dのとき、最も耐久の効率が良い
多分、他のブログなんかでは上の証明が一般的だと思います。自分も最初に考えた証明方法はこれで、そして思いついてすぐに「いや、これはおかしい」と否定した証明でもあります。
「受けるダメージが防御・特防に反比例するのなら、物理耐久がHB、特殊耐久がHDで表される、という所まではいい。でも、物理耐久と特殊耐久を単純に足したH(B+D)って、何の意味があるんだ?」
この疑問に対する答えを得られたことはありません。何の意味があるのかもよく分からん数字を最大にするのが効率がいい、という理屈は自分には受け入れられませんでした。そんな変な数を持ち出さずに証明する方法はないか――と考えて思いついたのが、元記事の証明方法です。
証明方法は記事を参照してもらうとして、証明した内容は以下の通りです。
『H+B+Dが一定のとき、BとDの比率を1:kとすると、任意のkについて、H=B+Dを満たすとき、HBとHDは共に最大となる。よって自由に能力を割り振れるのなら、常にH=B+Dを満たした方が効率が良い』
書いてあることはこれだけなんですが、ただ、ここで誤解されてしまった部分があったような気がするので、もう少し具体的な数字を出して説明します。
例えば、H+B+Dが400のポケモンがいたとします。ここで、(H,B,D)=(100,150,150)ならとHBとHDは共に15000ですが、(H,B,D)=
(200,100,100)ならばHBとHDは共に20000です。HBとHDの両方ともが高いので後者の方が確実に効率がいい、というのが分かります。
(H,B,D)=(100,150,150)以外でも、『防御と特防が等しい』という条件を維持している限り、HBDの値をどう動かしたとしても、(H,B,D)= (200,100,100)の時のHBやHDを超えることはできません。
そして、これは『防御と特防が等しい』以外の条件――例えば『防御は特防の1.5倍』だろうと、『防御は特防の1/3』だろうと、H=B+Dの時にHBもHDも最大となる、という話です。
例えば、『防御は特防の1.5倍』の条件下では、(H,B,D)= (200,120,80)の時のHBは24000、HDは16000で、
(H,B,D)= (150,150,100) の時のHBは22500、HDは15000なので両方とも前者の方が高いです。
『防御は特防の1/3』の条件下では(H,B,D)= (200,50,150) の時のHBは10000、HDは30000、(H,B,D)= (240,40,120)の時のHBは9600、HDは24800なので両方とも前者の方が高い。
こんな風に、防御と特防の比率を先に決めてしまえば、どの比率の場合でも『H=B+D』を満たす時にHBとHDの両方が最大になります。つまり、BとDの比率がどうなる場合だろうと、『H=B+D』を満たしている場合が一番いい、という理屈です。
記事で証明したのはこういうことです(証明方法は記事を読んでください)。H(B+D)という謎の数字を持ち出さず、『物理耐久も特殊耐久も両方高い配分があるのならそっちの方がいいに決まっている』という当たり前の理屈だけで証明しています。
しかし、ここでは防御と特防の比率が等しいもの同士について証明しただけで、防御と特防の比率が違うものについては何も証明していません。ここの所を勘違いしてしまった人がいるのではないか、ということで解説します。
具体的な数字を出しましょう。仮に現在の能力が、(H,B,D)= (180,120,80)のポケモンがいたとして、ここから余った努力値によって耐久の能力を合計で20上げられるとします。HPを20上げればH=B+Dが満たせるのでそれが最も効率がいい――となってしまいそうですが、そうとは限りません。
HPを20上げた場合、(H,B,D)= (200,120,80)なのでHBは24000、HDは16000です。一方、特防を20上げた場合、(H,B,D)= (180,120,100)なのでHBは21600、HDは18000です。HBは前者の方が高いですがHDは後者の方が高いので、どちらの方がいいかは一概には決められません。
確実にいえるのは(『防御が特防の1.2倍』という条件で考えて)(H,B,D)= (180,120,100)よりも(H,B,D)= (200,109,91)の方がいいということだけです。この場合のHBは21800、HDは18200なので、HBとHDの両方ともが(H,B,D)= (180,120,100)よりも高いですから、確実に効率がいいです。
しかし、実際のケースでは(H,B,D)= (180,120,80)のポケモンに努力値を振って(H,B,D)= (200,109,91)にすることはできません。なぜならばポケモンにはマイナスの努力値を振ることができないからです。
自分が記事で証明したのは、あくまで『自由に能力を割り振れるのなら常にH=B+Dを満たした方がいい』ということであって、『H=B+Dを満たせるのなら常にH=B+Dを満たした方がいい』ということではないんです。
ここまでの話は何も特殊な仮定を置いてはいません。完全に机上の計算だけで導き出せる理論です。しかし、実際にはそんな自由に能力を割り振れるわけではありません。どうしたって現実には『BDの比率が違うもの』を扱わなければならないケースが多いわけで、そうなると何らかの仮定を置かなければ無理でした。
だから前提条件を作るとしても、H(B+D)のような何を示しているのかも分からんものを持ち出すわけにはいきません。可能な限り一般性の高いモデルを作ろうとして生み出したものが、次の記事――『総合耐久指数』です。
総合耐久指数T=HBD/(B+D)
ここで置いたのは、「物理攻撃と特殊攻撃を均等に受ける」という仮定です。まあかなりざっくりしたモデルで、シングルバトルではある程度攻撃を受ける相手を選べますから、ポケモン次第ですがそれほど実情と合致しないことも多いと思います。一方、ダブルバトルではあらゆる技があらゆる方向に飛んでくるのでそれなりにモデルに近くなっていますが、威嚇が飛び交う世界でもあるので、その点で物理と特殊に格差があります。要するに常に成り立つ仮定ではないわけですが、それに基づいて作った総合耐久指数という数字は『仮定が成り立っている限りは意味のある数字』であるのは確かです。
こっちの記事に関しては、まあ、書いたことは大体伝わっていると思います。一番後悔しているのは、この時には総合耐久指数の記号をSにしていたことですね……素早さのSと紛らわしすぎるということに後から気付きました。結局その後にTに変えましたが、しばらく混乱させたと思います。
その上で補足しておくことは、まあ、2点ほど。記事の結論として、『T=HBD/(B+D)を最大にするためには、X=H+Bとして、B= (D^2+XD)^(1/2)-Dとなるように能力を割り振れば良い(B<Dの場合)』となっていました。実際に振り方を決める際にはこの通りでいいんですが、検算の際には別の数式もあります。
HPの価値と防御の価値が等しい時にTは最大となるので、
∂T/∂H=∂T/∂B
BD/(B+D)={HD(B+D)-HBD}/(B+D)^2=(HD^2)/(B+D)^2
これを式変形して、
H=B/D×(B+D)
です。
記事執筆時点でもこっちの方がすっきりしていると気付いていましたし、コメント欄でこういう式もあると指摘はされました。B= (D^2+XD)^(1/2)-DにX=H+Bを代入して変形してもこの形にはなります。ただ、形としてはこっちの方がすっきりしていますが、実際に振り方を決める際には、元々分かっている情報がXとDなので、結局B=
(D^2+XD)^(1/2)-Dの形にして計算し直さなければいけません。
なので元々の記事にはH=B/D×(B+D)の式は載せなかったわけですが、検算する際にはこっちの方が速いです。
そして補足の2つ目が、記事の最後で少しだけ触れていた、『相手の攻撃の物理特殊の偏りまで考慮した場合の総合耐久指数』です。自分には物理特殊の偏り方がどの程度なのか判断できないので完全に均等なモデルをこれまで使っていたんですが、相手側の比率はともかく、こっちでかけている補正は考えないわけにはいかないんですよね。
『こちらからかける補正』というのは、要するに突撃チョッキや威嚇、氷の鱗粉なんかです。そして、『受けるダメージの物理特殊の比率』と『こちらからかける補正』の2つは全く同じ理屈で扱えるんです。今回、より一般化した総合耐久指数を作るにあたって、そこまで組み込むことにしました。
総合耐久指数を出した時と理屈は同じです。瀕死になるまでにTの火力の物理攻撃とkTの火力の特殊攻撃を受けた、かつ、こちらの防御・特防にはb、d倍の補正がかかっているとすると、
T/HbB+kT/HdD=1
T=HbBdD/(kbB+dD)
なので、
攻撃頻度や補正まで考慮した総合耐久指数
T=HbBdD/(kbB+dD)
k:物理攻撃に対する特殊攻撃を受ける頻度(例:物理攻撃の2倍の特殊攻撃を受けるのならk=2)
b:Bにかかる補正(例:威嚇持ちならばb=1.5)
d:Dにかかる補正(例:突撃チョッキ持ちならばd=1.5)
まあ威嚇は効かない相手も結構いるので、単純にb=1.5といっていいかどうかは微妙ですが、ここではそういうことにします。
これまでの総合耐久指数はk=b=d=1とした時のものです。自分には物理特殊を受ける頻度の差がどれくらいなのかよく分からないので、ざっくりkを1として計算してきましたが、今回定義を拡張するにあたってより一般性が高い式を使おうと考えたのでそこまで考慮することにしました。
このTを最大化するための振り方は、H・B・Dの価値全てが等しくなればよいので、
∂T/∂H=∂T/∂B=∂T/∂D
bBdD/(kbB+dD)=(Hb(dD)^2)/(kbB+dD)^2=(Hd(kbB)^2)/(kbB+dD)^2
BD(kbB+dD)=HdD^2=HkbB^2
を満たす時です。
記事の前半で説明した、『自由に能力を割り振れるならH=B+Dを満たした方が効率的』という理屈はここでも成り立ちます。上の連立方程式を変形すると、
dD^2=kbB^2
と
H=B+D
の2つの式になります。
ただし、何度もいいますが、大体において『自由に能力を割り振れるなら』という条件は成立しません。自由に割り振れない時はどうすればいいか、といえば――まあいつものように具体例を出して説明した方がいいでしょう。
というわけで今回のポケモンです。おそらく全てのポケモンの中で最も種族値の効率がいいポケモン、ドリュウズです。

今回は耐久に252の努力値を回す前提で考えます。そこそこ先攻確率が高いポケモンなのでそんなに耐久に振ることは多くないと思いますが、ある程度の努力値を耐久に回さないことには振り方の議論ができないので、今回はそういうことにします。
よっぽど攻撃が偏らないことには全部に4振りはした方がいいので、
ドリュウズの耐久値(HBD4振り)
H186-B81-D86
残りの努力値が240なので、ここから合計で30の能力を上げられることになります。
まず、
①『物理特殊を受ける頻度が完全に均等で、かつ物理特殊の補正も考慮しない』とした場合の能力配分
から考えます。つまりk=b=d=1の場合です。
まず、理想の能力は
dD^2=kbB^2
H=B+D
を実現している場合です。これが満たせるのなら満たした方がいい。
耐久に252振りする場合はH+B+D=186+81+86+30=383なので、H=B+Dの時、H=191.5です。更にk=b=d=1の場合、D=Bが理想です。B+Dの残りは191.5なので、B=D=95.75となります。
一応、基本的に、微妙な端数で困った場合にはHPの方が切り上げた方がいいです。というのも、ダメージ計算式の都合上、BDに反比例する形よりもほんの少しだけ受けるダメージが実際には大きくなっているからです。ただ、この場合には綺麗に16n-1調整になるので、さすがにHPの方を切り捨てることにします(まあドリュウズは砂ダメを受けないので16n-1調整の意味はそれほどありませんが)。
そうなるとBDに残せるのは192なのでB=D=96です。
よってドリュウズの理想の耐久値は、
H=191、B=D=96
で、これはHに44振り、Bに124振り、Dに84振りで実現できます。
それでは次に行きます。
②『物理特殊を受ける頻度が完全に均等で、かつ突撃チョッキを持っている』とした場合の能力配分
ここでも、まずは『理想の能力配分』が実現できるかから考えます。
dD^2=kbB^2
H=B+D
突撃チョッキを持っているのでd=1.5で、他の条件は同じなのでk=b=1です。
理想配分のHPは変わらず191ですが、dが変化するのでBDの理想の比率は①と変わってきます。d=1.5、k=b=1を代入すると、
1.5D^2=B^2
B=D×√1.5
です。
B+D=192なので、
√1.5×D+D=192
D=192/(1+√1.5)=86.3
です。四捨五入してD=86、B=106です。
よって、この場合のドリュウズの理想の能力配分は、
H=191、B=106、D=86
です。Hに44振り、Bに204振り、Dに4振りで実現できるので、これが②の場合の能力調整の結論となります。
それでは3つ目です。
③『物理攻撃を特殊攻撃の1.2倍の頻度で受けて、かつ突撃チョッキを持っている』とした場合の能力配分
何か今は物理環境だとかいう話をよく聞くのでこういう仮定を置きました。実際にはここの比率がどれくらいか推定するのが一番難しいわけですが、今回はとりあえず1.2倍として考えます。
kは物理攻撃に対する特殊攻撃を受ける頻度なので、物理攻撃を特殊攻撃の1.2倍の頻度で受ける場合、k=1/1.2です。チョッキ持ちなのでdは②と同じく1.5、防御に補正はかかっていないのでb=1です。
前2つと同様に理想の能力配分を計算すると、
H=B+Dより、H=191
dD^2=kbB^2より、
1.5D^2=1/1.2×B^2
B=D×√1.8
B+D=192なので、
√1.8×D+D=192
D=192/(1+√1.8)=82
四捨五入してD=82、B=110
よって理想の能力は、
H=191、B=110、D=82
ですが、これは種族値の制約によって実現できません。Dが4振り時点で理想値を上回っています。
この場合はDに4振りだけして、HとBの間でバランスを取ります。HとBの価値が等しくなるポイントを探すわけです。
HとBの価値が等しくなるときは、∂T/∂H=∂T/∂Bなので、
BD(kbB+dD)=HdD^2
です。k=1/1.2、b=1、d=1.5より、
HD=B(B/1.2+1.5D)
条件として、
H+B=383-86=297、D=86
これを解かなければいけないのですが、はっきりいって結構面倒くさいです。kやbやdが変わったときにも計算一回で済むようにするために、先に一般化して計算しておきましょう。
HとBの価値が等しくなるときの能力配分
∂T/∂H=∂T/∂Bより、
bBdD/(kbB+dD)=(Hb(dD)^2)/(kbB+dD)^2
HdD=B(kbB+dD)
H+B=Xとすると、
(X-B)dD=B(kbB+dD)
kbB^2+2BdD-XdD=0
B=[{(dD)^2+kbXdD}^(1/2)-dD)]/kb
です。k=b=d=1の時は以前と同じく、B= (D^2+XD)^(1/2)-Dとなります。
今回は、X=297、D=86、k=1/1.2、b=1、d-1.5なので、これを代入すると、
B=109.7
四捨五入して、B=110、H=187
となります。
H=187、B=110、D=86は、Hに12振り、Bに236振り、Dに4振りで実現できるので、これが③の場合の耐久調整の結論となります。
見ての通り、この場合は『H=B+Dを満たすことができるが敢えて満たさない』努力値配分になっています。能力を自由に割り振れるなら満たしますが、種族値の制約によってDを理想値にすることができないので、この場合は敢えてH=B+DにせずにBに多く振ります。
耐久の決め方の基本をまとめると、
・k、b、d、H+B+Dを自分で設定する
・その上で、H=B+D、dD^2=kbB^2が理想の能力なので、まずはこれを満たすことができるかどうかを調べる
・満たすことができる場合はその振り方をする。
・満たすことができない場合は、『4振り時点で理想値を超えている』『全部振っても理想値に足りない』のどちらかの能力があるはずなので、その1カ所を4振りまたは極振りに固定した上で、残りの2つの能力の価値が等しくなるポイントを探す。
・HとBの価値が等しくなるのは、H+B=Xとして、B=[{(dD)^2+kbXdD}^(1/2)-dD)]/kbの時
・HとDの価値が等しくなるのは、H+D=Xとして、D=[{(kbB)^2+kbBdX}^(1/2)-kbB)]/dの時
・BとDの価値が等しくなるのは、dD^2=kbB^2の時
といったところです。
なお、今回は相当色々書きましたが、ドリュウズは種族値配分が凄くいいのと、耐久に回す努力値を252も確保したからこんな風に色々いじる余地があるだけで、大体のポケモンは計算するまでもなく『BDに4振りだけして残り全部HP』という結論になります。他の例外はニンフィアみたいにBDの偏りが大きい場合や、シングルバトルの受けループみたいにkが1から大きくかけ離れている場合ですかね。
あと補足しておくと、ダイマックスする場合でもこの振り方は全く変わりません。あれは単純に耐久力が2倍になるだけです。ただし、耐久火力速度のバランスは変化します。
想像していたよりも随分と記事が長くなってしまいました。というかここの所、どんどん記事が長くややこしくなっている気がします。
次回はパーティ構築に関する話ができればいいですが、例によって具体例として使うパーティがないと説明しづらいので、先に総合能力指数の記事の補足をするかもれません。どっちにしてもそこまで面倒くさいことは書かない……はずです。多分。
スポンサーサイト