【ポケモンSM】Twitterで話題になった幻の期末試験を解いてみた⑤~ステータス計算~

前回のソルガレオ育成問題で、さらっとステータスの実数値を書いていたのですがこれでは解説になっていないので一応説明しようと思います。

 

 

僕はステータス計算ツールダメージ計算ツール(https://pokemon-trainer.net/sm/dmcs/)のサイトを利用して求めたのですが、これらは簡単な計算式を覚えておけば電卓でも計算できます。

 

ステータス計算式

HP

{(種族値×2+個体値努力値/4)×Lv/100}+10+Lv

レベル50のとき

{(種族値×2+個体値努力値/4)÷2}+10+Lv

 

攻撃,防御,特攻,特防,素早さ

[{(種族値×2+個体値努力値/4)×Lv/100}+5]×性格補正(1.1,1.0,0.9)

レベル50のとき

[{(種族値×2+個体値努力値/4)÷2}+5]×性格補正(1.1,1.0,0.9)

 

計算途中で出てきた小数点以下は計算の最後に切り捨てられるため、4の倍数に満たない端数の努力値は無駄になってしまいます。
また、レベル50の場合、個体値奇数の場合は努力値を8n+4、偶数の場合は8nにしないと同じく無駄が出ることに注意しましょう(8nは8の倍数、8n+4は8の倍数に4を加えたものという意味です)。

 

種族値ポケモンの種類によって決まっている数値で、個体値は基本的に最大の31を想定しています。しかし、努力値は目的によって各能力に0~252(合計510)だけ振り分けることができ、これがステータスに大きな影響を与えます。

ポケモンバトルの面白さの一つは、同じポケモンでも技や努力値、性格を変えることで様々な戦い方ができることだと思います。

 

式を覚える必要はないですが、計算式の意味を理解しておくと耐久調整の努力値振りを考えるときに役立つと思います。

大問5では、この式を使ってステータスの最大値と最小値を求めます。それでは、最後の問題に挑戦してみましょう!!

f:id:mdydo23:20170129223842p:plain

↑↑ すごいとっくんは個体値を最大まで引き上げるイベントです ↑↑

 

問 あるポケモン種族値をxとするとき、レベル50とレベル100におけるステータスの最大値(努力値252)と最小値(努力値0)をxを用いて表せ。ただし個体値は全て31とし、性格による補正はないとする。

 

レベル50とレベル100の場合は解き方が同じなのでレベル50のみ説明します。

先ほどの計算式に種族値=x、努力値=31を代入すると、

HP:{(2x+31+努力値/4)÷2}+10+50

HP以外:{(2x+31+努力値/4)÷2}+5

 

これら2つの式は1次関数ですので努力値に0と252を代入すれば最小値と最大値を求めることができるのですが、せっかくなのでガウス記号を用いて計算してみましょう。

ガウス記号[]はある値を超えない最大の整数を表します。例えば[4.2]=4、[10]=10、[-4.2]=-5となります。

 

ここで努力値をd、D =[d/4]とおくと、

HP:{(2x+31+D)÷2}+60 = x + (31+D)/2 + 60

HP以外:{(2x+31+D)÷2}+5 = x + (31+D)/2 +5

(ただし小数点以下は切り捨て)

となります。

 

0≦d≦252のとき、0≦D≦63であるから

15≦[(31+D)/2]≦47

となります。

 

したがって、

HPの最小値はx+75、最大値はx+107

HP以外の最小値はx+20、最大値はx+52

となります。

 

 

ちなみに、性格による補正を考えると、

HP以外の最小値は(x+20)×0.9、最大値は(x+52)×1.1

となります。

 

さらに素早さをあえて最も遅くする場合は個体値を0にするため、

最小値は(x+5)×0.9

まで落とすことができます。

 

例えばギルガルドの素早さ種族値は60なので、65×0.9=58.5となり小数点以下を切り捨てるとレベル50の最遅ギルガルドの素早さは58になることがわかります。

 

 

これで全ての解説は終わりです。お疲れさまでした!!

ポケモンはストーリーを一周するだけでも十分楽しめますが、好きなポケモンを育てて通信対戦を行うのもめちゃくちゃ楽しいです。

育成論を検索すると難しい言葉がたくさん出てきますが基本的には算数がわかれば理解できるようになっていますので、ネットで調べながら勉強してみてください。

皆さんとどこかで対戦できるのを楽しみにしています(*´▽`*)