第3世代 > RS > 孵化乱数

タマゴの生成時と受け取り時の2段階に分かれる。
エメラルドの孵化乱数と異なり、かわらずのいしの効果はない。
先親、後親は預けた順。
  • 生成時
ポケモンを預けてから255歩ごとに生成判定。
その時に、以下の処理を行う。
r_n\times\text{0x64}\div\text{0xFFFF} が両親の相性により20or50or70未満の時タマゴ生成、次に進む
r_{n+1}\mod\text{0xFFFF}+1 で性格値下位16bitを決定
  • 受け取り時
タマゴを受け取ったときに以下の処理を行う。
r_n で性格値上位16bitを決定
r_{n+1} スキップ
r_{n+2} の下位から5bitずつHABの仮個体値決定
r_{n+3} の下位から5bitずつSCDの仮個体値決定
r_{n+4} スキップ
r_{n+5}...r_{n+7} 遺伝個所決定、詳しくは下で
r_{n+8} の最下位bitで1箇所目の遺伝親決定、0が先親、1が後親
r_{n+9} の最下位bitで2箇所目の遺伝親決定、0が先親、1が後親
r_{n+10} の最下位bitで3箇所目の遺伝親決定、0が先親、1が後親
決定された3つの遺伝個所を1つ目から順番に上書きする(重複は後のものが優先される)
遺伝個所が重複する可能性があるので、遺伝個所は3つとは限らない。
調整するタイミングは受け取り時の最後のセリフで。

で、肝心の個体値遺伝は以下のようになっている。
p=<0,1,2,3,4,5> // 遺伝可能箇所、左から0~5番、中の数字0~5がHABSCDに対応
以下iを1から3までループ
i番目の遺伝個所をpのr_{n+4+i}\mod(7-i) 番の数字で決定する
上で計算した数字番の数字をpから削除し、それより右側の数字を1つ左にずらして番号を1つ減らす
// 例えば<0,1,3,4,5,->の時に遺伝個所が2番(2番の数字3に対応するS)になった場合、
// 計算した数字が3なので削除されるのは3番の4、残りは<0,1,3,5,-,->になる
赤字部分が遺伝個所が3箇所とは限らない原因。
Em孵化乱数とはまた少し異なる。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2012年12月05日 17:16