ウマの繁殖:完璧な両親を揃えても完璧な子馬は保証されない
子馬は両親の中間値を中心とするが、ばらつきにはステータス範囲の0.3倍という下限が常に残る。両親がどれほど同一でも、この項が消えることはない。ロールは3つの乱数の平均で、0を中心に±0.5の範囲に収まります。
ウマの繁殖はよく「子馬は両親の平均値に、ある程度のランダム性を加えたものになる」と説明される。前半はまったくその通りだ。後半は、繁殖計画にどれだけ時間がかかるかを実際に決めている部分を覆い隠している。
モデル
midpoint = (parentA + parentB) / 2
spread = |parentA − parentB| + 0.3 × (statMax − statMin)
roll = (random + random + random) / 3 − 0.5
foal = midpoint + spread × roll
このロールは3つの一様乱数の平均なので、0を中心とし、±0.5の範囲に収まり、標準偏差0.1667の釣鐘型の分布になる。中心が0ということは、期待される子馬はちょうど両親の中間値になる——「平均化される」という俗説の半分は正しい。
ばらつきには取り除けない下限がある
第2項を見てほしい:0.3 × (statMax − statMin)。これは両親をまったく参照していない。
たとえ両親が完全に同一でも、|parentA − parentB|はゼロになり、ばらつきはなおも次の通りだ:
| ステータス | 全範囲 | 削減不能なばらつき |
|---|---|---|
| 最大体力 | 15 – 30 | 4.50 |
| 跳躍力 | 1.09 – 5.29 | 1.26 |
| 移動速度 | 4.74 – 14.23 | 2.85 |
つまり、最大速度のウマ同士を繁殖させると、子馬は14.23を中心に標準偏差0.47で分布する——そしてゲームは上限を超えるロールをすべて折り返して下げるため、実際の子馬はすべて14.23以下となり、平均は約13.84、最低では約12.81まで落ちうる。完璧な両親は完璧な子馬を生まない。完璧を中心に、一定量ばらついた子馬を生むのだ。
これが繁殖計画が頭打ちになる理由だ。両親が近い値になったら、それ以上近づけても効果はなくなる——|parentA − parentB|の項はすでにほぼゼロで、残るのは繁殖では消せない定数だけだ。
両親を揃えることには依然として大きな意味がある
逆の極端な例では、最速のウマと最遅のウマを繁殖させると、ばらつきは9.49 + 2.85 = 12.34になる——同一両親の下限の4倍以上だ。つまり、似たウマ同士を掛け合わせるという助言は正しい。ただし、そこには厳然たる限界がある。
実践的な形はこうだ:
- 序盤は、両親を揃えることがすべてだ。
|A − B|を削れば、ばらつきはほぼ1対1で削れる。 - 終盤は、何の効果もない。相手は0.3の下限であり、残された唯一の手段は量——より多くの子馬を繁殖させ、上位の裾だけを残すことだ。
裾が薄い理由
ロールが1つではなく3つの乱数の平均だから、結果は中央付近に密集する。ばらつきの端ぎりぎりに着地する子馬には、3つの乱数すべてが同じ極端に寄る必要があり、それは稀だ。およそ3分の2の子馬は標準偏差1つ以内に収まる——同一の最高両親で速度なら0.47——そして狙っている外れ値はそのずっと先にある。
だから終盤の繁殖計画に対する正直な見通しはこうだ:ほとんどの子馬は運だけで両親の中間値よりわずかに劣り、少数がわずかに優れ、進歩はその少数だけを残すことから生まれる。
ゲームとの違いが1つ
この計算機は範囲外の結果を範囲内に反映し直さないが、Minecraftはそうする。そのため、ステータスのほぼ上限付近では、実際のゲームは不可能なロールを切り捨てるのではなく折り返して下げる。これにより極端な裾の形がわずかに変わる。上記のばらつきと頭打ちには影響しないが、上限付近では釣鐘の上半分が折り返されるため、実際の平均は中間値よりいくらか低くなる。