【色違いが出る仕組み】ポケットモンスターシャイニングパール御三家色違い厳選記録3

こんにちはこんばんはいらっしゃいませおはようございます。僕です。

ポケットモンスターシャイニングパールの色違い御三家の厳選を何回行ったか記録していくコーナー。選ぶポケモンはナエトル。名前は「ナエナイデ」にする予定。kiccoちゃんさん(嫁)はブリリアントダイヤモンドでヒコザルを選んで、同じく色違いを厳選中。

2021年
12月5日 20回
12月6日 22回
12月7日 40回
12月8日 53回
12月9日 50回
12月10日 53回
12月11日 50回
12月12日 70回
12月13日 21回
12月14日 58回
12月15日 100回
12月16日 121回
12月17日 103回
12月18日 130回
合計891回(32時間10分30秒)
色違いが出ている確率は19.552%。大体10万人中19,552人は色違いが出ている計算。僕はこの19,552人には入れなかったということ。まだまだ道のりは長そう。
ちなみにkiccoちゃんさんは既に1,560回やっているが未だ出ていない模様。1,560回厳選を繰り返しているので、色違いが出ている確率は31.676%。大体10万人中31,676人は色違いが出ているということになるが…(笑)

計算式→【出現率調査】ポケットモンスターシャイニングパール御三家色違い厳選記録2

【色違いが出る仕組み】
色違いが出る確率は4096分の1。「4096」という数字は「2の12乗」なので2進数が何かしら関係しているんだと思う。ので、調べてみたら判定式と言うのが出てきた。

判定式:(TID)xor(SID)xor(性格値上位)xor(性格値下位)≦15

なるほど…???

分からん

【ざっくり調べること】

①IDとは
②TID・SIDとは
③性格値とは
④性格値上位・性格値下位とは
⑤xorとは
⑥≦15とは

①IDとは
プレイヤーを識別する番号をIDと呼ぶ。ゲーム本編においてセーブデータを作った時に、プレイヤーに対してランダムで割り振られる。セーブデータを消さない限り変わることはない。ゲーム内のプログラム上では32桁の2進数で表されている。

②TID・SIDとは
IDのプログラム上で表されている32桁の2進数のうち、下16桁を「TID」上16桁を「SID」と呼ぶ。5桁の10進数で表すことが多く、どちらも00000~65535の65,536通り。

③性格値とは
ポケモンの個体ごとに存在する隠しパラメータの一種として、性格値というのがある。イベント発生時、野生出現時とかの瞬間に決まって、その後変わることはない。性別とか特性とかを決めるのに使ってるらしい。ゲーム内のプログラム上では32桁の2進数で表される。8桁の16進数で表すことが多い。4,294,967,296通りの組み合わせがあるが、この中で実現不可能の組み合わせもあるので実際はもうちょっと少ない。

④性格値上位・性格値下位とは
性格値のプログラム上で表されている32桁の2進数のうち、上16桁を「性格値上位」下16桁を「性格値下位」と呼ぶ。8桁の16進数で表すことが多い。

⑤xorとは
「xor」は排他的理論和といって、簡単に言うと、同じなら「0」違うなら「1」って計算する。exclusive orを略して「xor」らしい。+、-、×、÷の上位互換みたいなもの。

1xor1=0
1xor0=1
0xor1=1
0xor0=0

こんな感じ。0と1だけならこの4通りだけ。例えば、1100xor1010=0110ってなる。

⑥≦15とは
「≦」は「以下」という意味。「15」は10進数で「15」、16桁の2進数で「0000000000001111」。「≦15」とは16桁の2進数で「0000000000001111以下」という意味。
(ブラック2・ホワイト2までは「≦7」だった)

【4096分の1】

判定式:
(TID)xor(SID)xor(性格値上位)xor(性格値下位)≦0000000000001111
※すべて2進数で計算

つまり、計算結果が上12桁が0で色違いとなる。1と0それぞれ2分の1の確率で出るので上12桁が全て0になる確率は、2分の1の12乗ということになるので、4096分の1となる。

分からんすぎた

【実際に数字を当てはめてみる】

プレイヤーのTIDが43689、SIDが21853、出てきたポケモンの性格値がAAAB555Fのとき、色違いになるかどうか。
TID:43689(10進数)
SID:21853(10進数)
性格値:AAAB555F(16進数)

2進数に直す。
TID :1010101010101001(2進数)
SID :0101010101011101(2進数)
性格値 :10101010101010110101010101010101(2進数)
性格値上位:1010101010101011(2進数)
性格値下位:0101010101010101(2進数)
判定式に当てはめる。
(TID)xor(SID)xor(性格値上位)xor(性格値下位)
=1010101010101001xor0101010101011101xor1010101010101011xor0101010101011111

結果、0000000000001010は0000000000001111以下なので色違いになる。

「ポケモンやるのにそんなこと考えんでえぇ(笑)」ってkiccoちゃんさんに言われた。でも僕は考えたい。面白いから。

【おまけコラム】

トレーナーカードのIDは、5桁の場合は「TID」の数字が、6桁の場合は「TID」「SID」を元に下記の計算式で算出された数字が採用されている。(オメガルビー・アルファサファイアまでが5桁)

計算式:(SID×65536+TID)%1000000
※「%1000000」とは1000000で割ったあまりの数のこと。つまり下6桁。

例えば「TID:12345」「SID:54321」の場合、
(SID×65536+TID)=(65535×65536+12345)=3559993401
(SID×65536+TID)÷1000000=3559993401÷1000000
3559993401=3559×1000000+993401
となり、トレーナーカードのIDは「993401」の6桁となる。
要は、32桁の2進数で表されたゲーム内のプログラム上のIDを10進数にした時の下6桁ということ。

←1838文字 おわり

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です