仮説:レジエレキの素早さを用いて、新たな形のオーバーフローを起こせるか

レジエレキのスピードを受け継いだ超神速メタモンのレベル100バージョンで、計算上の素早さが2^14(=16384)を超えられるようになったことを前の記事で書いたのだが、そこで新たな可能性が自分の中で浮上した

 

まず初めに、すばやさ - ポケモンWikiによれば、素早さの計算は、内部的に5段階に分かれている

a. すばやさ実数値

b. aのすばやさをランク補正他諸々の効果で補正したすばやさ

c. bのすばやさが10000を超える場合、10000になる

d. トリックルーム状態なら10000からcのすばやさを引く。トリックルーム状態でないならcのまま

e. dのすばやさを213=8192で割った余りを出す。8192未満ならばそのまま

 

  従来からあったオーバーフローは基本的に、最後のeの段階で、8192以上の数値を低い値として出力することを指していて、これは昔から存在した。(自分も7世代で確認でき、動画化した)

 

しかし、この5段階の説明を見て、素人考えで違和感を覚えるのは、cやdの「10000」という数字だ

最終的にeで出力するときは、2^13=8192通りになる一方で、それ以前の途中の計算のときには、それ以上の数値(少なくとも1万)を、正しく認識して処理しているように見える

だから、途中の計算処理をするときに数値を扱っている桁の数は、13桁(2^13=8192)ではなく、少なくとも14桁(2^14=16384)はあるように思われる

 

それが実際に14桁なのか15桁なのか16桁なのかはわからないが、もし仮に14桁(2^14)だった場合、正常に扱える数値の範囲は、0~16383までということになる

しかし、レジエレキの登場によって、bの時点で16383を超えられるようになった

だから、もし途中の処理で16383までしか扱えないのであれば、(eではなく)bの時点でオーバーフローを起こすことができ、1周回って小さな数値になる

すると、当然cに渡す数値も小さくなってしまい、元々は1万を超える数値であったにも関わらず、「1万になる」という処理も行われなくなる

 

つまり、レジエレキの登場によって初めて、「すばやさが10000を超える場合、10000になる」というルールを無視できる可能性が出てきたのだ

 

もちろん、途中で扱う数値が15桁以上あればこのような現象は起きないし、あくまで素人考えの推論なので、そもそも話が根本的に間違っている可能性もある

 

一応、検証の仕方としては、

素早さの実数値が512(LV100おくびょう個体値Vなら努力値120~123振り)のレジエレキを用意し、超神速メタモンの考え方に沿って各種補正をかけると

計算上の素早さは、512×4×2×2×2=16384(=2^14)になる

このとき、もし新しい形のオーバーフローが起きていれば、素早さはちょうど0になるので、一番遅く動く

逆に早く動けば、従来の仕様通り内部的な素早さは10000(実際の素早さは1808)になっているものと思われ、この仮説は反証される

 

 

というわけで、この仮説が合っているかどうかは、実際に検証してみればわかるのだが、自分は検証できる環境を持っていないので、物好きな方がいたら試してみてください