ディスガイアと、お数字
※※ 数学イヤーな人は飛ばしてネ♡ ※※
フォロー先で話題になってたので。感覚重視なので説明はいい加減だよ!
小数の処理には普段私たちが使っている「固定小数点」と、コンピュータが大きな桁を扱うための「浮動小数点」というものがあります。
すごく簡略化していうと、
固定小数点… 0.01は0.01だよ(*゚∀゚*)
浮動小数点… 0.01は0.1×10のマイナス1乗だよ(`∀´)
という、中学・高校で習う有効数字の計算というアレのことです。
ディスガイアでは上は何兆、何京というバカみたいに大きな数字を扱うため、整数も有効数字を使う浮動小数点にせざるをえません。こちらもすごく簡略化していうと、
固定小数点…19桁、つまり0が18個までにして(*゚▽゚*)
浮動小数点…300桁、0が300個ぐらいカモン(`∀´)
と、なります。
問題は浮動小数点君は「富士山の高さは本当は3775メートル51センチほにゃららミリなんだけど、面倒だから約3776メートルってことにしとくな(`∀´)」って結果を簡略化、余分なところ四捨五入したり切り上げたり切り捨てたりすることです。ディスガイアだと結果ダメージは「56兆!」となるあのイメージです。つまり浮動小数点を使った計算は常に近似値であり誤差があるということになります。
さて、やっと小数です。コンピュータは実際には電気ON!と電気OFF!の2つの数字しか使えません(2進数というやつです)ので、これを使って10のマイナス何乗をやると割り切れなくなるんです…
固定小数点&十進数…0.01は0.01だよ(*゚▽゚*)
浮動小数点&二進数…あれ、0.01って二進数だと割り切れねぇなぁ。十進数に戻すと0.0099998とかだけど、大体0.01だしいいよな(;`∀´)
という「結果あってるから許せよ」的なことがおこります。あってるうちはいいんですけどね…
これがイノセントの2.1%upとか、SPD0.3とか積み重ねるとこんなになります(数字は適当)
固定小数点&10進数…
0.4+0.3+0.3+0.3+0.3+0.4は2だよ(*゚▽゚*)SPD2上がるからイワシ先行できるね!
浮動小数点&2進数…
0.3999…+0.2999…+0.299…+えぇ〜っと、1.9994なんちゃらだなぁ。これ1.999だからSPDは+1な(;`∀´)
※SPD屋イノセントは小数点以下切り捨てです。0.4+レア0.6+0.3+0.3+0.4だと1.9995で四捨五入2.000→SPD+2になります(繰り返すけど数字は適当だよ!)
マジかよ!?俺のSPD屋とつけかえのHL返せ!って感じですが。しかもつける順番で変わるらしく、計算の途中でも四捨五入か切り捨てしてるっぽいんですよね、ディスガイアw
こうなるのも、みんなが上は何兆、何京のダメージ楽しむためだと思って、大目に見てあげてね(´∀`; )