バナーナナブログ

宮城県仙台市より、日々思ったことを綴っていくウェブログです。

5連個体値の取得ロジックの意味がわからなかった話

こんにちは。
表題の件なのですが、ポケモン剣盾で6Vメタモン乱数に挑戦していた前回

 

smdbanana.hatenablog.com

 4日目のメタモン捕獲→3Vであることを確認→「5連続になりません…
になることの多いこと多いこと。

今となってようやく理解したのは私の頭がポンコツなだけで、皆々様が丁寧に仕組みを説明して下さっています。 

note.com

 こちらとか非常にわかりやすい。

自分なりに咀嚼した説明を自分のために残しておきます。

 

一言で言って、
V固定4番目の算出を正しく理解してなかった

これに尽きます。
何を思ったか、「V固定されていない個体値1-3の3番目だけを8で割った余りがV固定4に割り当てられる。」と理解したのが全ての元凶。
(そんなことはどの記事でも言っていない)

正しくは、個体値1-3を順に「値÷8の余りをV固定4に割り当ててみる」。個体値1,2で再計算になり、個体値3で割当OKならパズル可能。
というものでした。

V固定位置へのマッピングは以下とのこと。

個体値÷8の余り マッピング
0 H
1 A
2 B
3 C
4 D
5 S
6 再計算
7 再計算

夜綱さんの例で出されている
3V個体 : 31-1-16-31-7-31
4V個体 : 31-31-16-31-7-31

この場合、3V個体を見ると

No 乱数用途 3V個体 備考
1 V固定1 H  
2 V固定2 C  
3 V固定3 S  
4 個体値1 1 1/8の余りは1→Aに割当
5 個体値2 16 16/8の余りは0→Hに割当
6 個体値3 7 7/8の余りは7→再計算

で、これは

No 乱数用途 4V個体 備考
1 V固定1 H  
2 V固定2 C  
3 V固定3 S  
4 V固定4 A 3V時の個体値1が1→VをAに振る→OK
5 個体値1 16 3V時の個体値2を使用
6 個体値2 7 3V時の個体値3を使用

のようになるので新たな個体値が見えないから連続した個体値は取れない→NGとなる、です。

 

次。成功する場合。

夜綱さんの例で出されている
3V個体 : 31-0-13-31-9-31
4V個体 : 31-31-16-31-7-31

この場合、3V個体を見ると

No 乱数用途 3V個体 備考
1 V固定1 H  
2 V固定2 C  
3 V固定3 S  
4 個体値1 0 0/8の余りは0→Hに割当
5 個体値2 13 13/8の余りは5→Sに割当
6 個体値3 9 9/8の余りは1→Aに割当

で、これは

No 乱数用途 4V個体 備考
1 V固定1 H  
2 V固定2 C  
3 V固定3 S  
4 V固定4 再計算 3V時の個体値1が0→VをHに振る→再計算
5 V固定4 再計算 3V時の個体値2が13→VをSに振る→再計算
6 V固定4 A 3V時の個体値3が9→VをAに振る→OK
7 個体値1 16 新たに検出した個体値
8 個体値2 7 新たに検出した個体値

となるので新たな個体値が2つ見えたので5連続個体値取得OKとなる、です。

 

3V個体から5連個体値取れるかどうかは、以下で求められる。
個体値1が再計算になる確率は 5 / 8 (被りの3パターン+6,7再計算の2パターン)
個体値2が再計算になる確率は 5 / 8 (上に同じ)
個体値3が再計算にならない確率は 3 / 8 (被らない3パターン)

なので、5連個体値が取得できる確率はおよそ15%程度、ということだったんですね。

 

Webでパズル可能かどうかチェックするために、js使って簡単に実装してみました。

 

f:id:smdbanana:20200108132025p:plain https://www.smd877.com/poke/puzzle_check.htmlwww.smd877.com

そのうち消すかもしれませんが。

すごく単純に作ってます(自分で組むのなんて10年以上ぶりだわ)。

途中で飽きてるのが分かると思う。

ソースはgistに置いてるので好きに使ってください。

gisted67e8e11a7f7ef84f447424cb4f1568

 

じゃね。