乱数についての解析情報


乱数の種類

ノーマル乱数

ゲーム中で汎用的に使われている乱数で、最小値0、最大値65535のランダム整数値をとります。

Xn=(Xn-1×1103515245+12345)(mod 4294967296)

乱数n=Xn÷65536

線形合同法です。下位16ビットを切り捨てています。

テーブル乱数A・B

テーブル乱数Aは閃き、見切り、プログラム自己開発に使われる乱数で、最小値0、最大値255のランダムな整数値をとります。

テーブル乱数Bは回避技、カウンター技の発動確率に使われる乱数で最小値0、最大値99のランダムな整数値をとります。

しかし、これら乱数で出現する数値には偏り――つまり、出易い数値とそうでない数値が存在します。テーブル乱数A・Bの生成式を完全に解明したわけではありませんが、現状で判明している法則は以下のようになります。

  1. 520個のマスをもつテーブルがゲームの内部に存在し、そこに0~255の整数値が収められている。
  2. 各数値が収められている個数は常に一定で、0が10個、1~255がそれぞれ2個づつ収められている。
  3. どの数値がどのマスに収められるかは戦闘が始まるたびにランダム(詳細未解明)で変化する。戦闘中に変化することはない。
  4. このランダム性には少なくともメニュー画面での経過時間、前戦闘の戦闘時間、リージョン選択画面での経過時間が影響することがわかっている。
  5. テーブル乱数Aが呼び出されると、"初期値+テーブル乱数Aの呼び出し回数"番目のマスから数値を参照しそれを返す。"初期値+テーブル乱数Aの呼び出し回数"が520を越えたら再び1番目のマスから数値を参照する。初期値の数値については不明。
  6. テーブル乱数Bが呼び出されれた場合も同様で、"初期値+テーブル乱数Bの呼び出し回数"番目のマスから数値を参照する。ただし、Bの場合は参照した値に以下の補正を掛けてから返す。

    返り値={255-参照したマスの値(mod 256)}×99÷255

以下はゲーム中より適当に抜き出したテーブルの例です。ご覧のように0だけが他の数値と違い10個存在します。

テーブルの例1
1~20番158157197170481923583253223123132129252781221004867
21~40番15229160642071471141032095114112956348816717643127195
41~60番23687113207175247208778145216224447167211851458261
61~80番6233128135152252196832463195102822062141668128132151
81~100番1341861291691362242819621722624125863797188124244179201
101~120番738615084216781124516100672222322298116208916
121~140番65231138108135126240801752003120116324319024411917721956
141~160番234159239176551851331221827316340581483985526963165
161~180番1801727174161418411711815146245981228185205741838
181~200番19171882412042182311051206191781992432198525417921
201~220番227126109107871891977916118314927350130228144107160227
221~240番1125081237198912541132251041592262051430209190242147125
241~260番134261682153922199251230181172541464621261310139121
261~280番923421157714076101171461871622369010326401409959
281~300番345718424962941886350217362027122801081119281138
301~320番1243352143581926911015612742120410617111872232230199
321~340番183158412471519318166241100111213322291295214154121
341~360番74202551692006817422914119120366451782452132420162120
361~380番75064173502382502401321868915359171235112441066696
381~400番2371393249189821072123519023353912083619417133251
401~420番22022072515024321518270221055803213001646060
421~440番239613714995137547610514847301647511914211416514211
441~460番1732227938155234115170192439724692702921849302235
461~480番184652064131177110101104154156015718111710372112527
481~500番5702211535394225152394202492191091312032193139194
501~520番233248141413614422410223818711618024816625519316815525335
テーブルの例2
1~20番1203323118213423220870251152411054217202128520630153
21~40番21911561351485211348194126241721752091591855714625291
41~60番2436013614253821171275296163114102147791402119376236
61~80番3111731641792483931561241901084149981241044524861
81~100番193165107711299769472379418925122322645412022813358
101~120番1772241201042436511671783546123214379044805126153
121~140番1861553216514320592442191737251182231328184105339
141~160番2111985124225225510818020599186961052301511880184145
161~180番6223021161172222455513917216624513738196229112710329
181~200番216782251511222011392036391662341424019319721521326167
201~220番23391209246142027228831631151472208131111871551834
221~240番01121812422281779725450110125241317804321812223149
241~260番11612195119175154222715075146210106204173147448160
261~280番1718446134359810230254182181161781621521002335136
281~300番762911787140205919819138216101722471761856158740
301~320番7015810968397559551641801412049195133311181746489
321~340番1192182221581281432562206619992627170661740255226
341~360番25023931114148692422924611618510623815753571006020117
361~380番0159771211321382818724114963221952441574318386237162
381~400番49169321972681190217212633699176741601798320011012
401~420番1711941702134720024919913010142168183227548220716118865
421~440番225882081668189129236852192358624424738169732355121
441~460番2531281927227223801132140196212191112203168013239
461~480番585673195902319234891502101441002313512513742203224
481~500番662492323464131154240151848821579115161107807710953
501~520番221207672201671921034814422145240250712311114194150130

ホーム-更新履歴-リンク
inserted by FC2 system