马匹繁殖:两匹完美的父母马也无法保证生出完美的马驹
马驹的属性值会以父母马的中间值为中心,但无论父母马有多么相似,其属性值的波动范围都有一个最低值,即属性值范围的0.3倍。这个最低值是无法消除的。
马匹繁殖通常被描述为“马驹的属性值是父母马的平均值,再加上一些随机性”。 前半部分完全正确。后半部分则隐藏了真正决定你的繁殖计划需要多长时间的关键部分。
模型
midpoint = (parentA + parentB) / 2
spread = |parentA − parentB| + 0.3 × (statMax − statMin)
roll = (random + random + random) / 3 − 0.5
foal = midpoint + spread × roll
这个“随机数”是三个均匀随机数的平均值,因此它以 0 为中心,边界为 ±0.5, 呈钟形分布,标准差为 0.1667。以零为中心意味着马驹的预期属性值恰好是父母马的中间值——民间说法中“平均值”的部分是正确的。
波动范围有一个无法消除的最低值
看看第二项:0.3 × (statMax − statMin)。它根本没有提及父母马。
即使是两匹完全相同的父母马,|parentA − parentB| 也是零,波动范围仍然是:
| 属性 | 完整范围 | 不可消除的波动范围 |
|---|---|---|
| 最大生命值 (Max Health) | 15 – 30 | 4.50 |
| 跳跃力度 (Jump Strength) | 1.09 – 5.29 | 1.26 |
| 移动速度 (Movement Speed) | 4.74 – 14.23 | 2.85 |
因此,繁殖两匹最高速度的马,生出的马驹平均速度为14.23,但标准差为0.47,最低可能达到约 12.81。两匹完美的父母马并不能生出完美的马驹;它们生出的马驹以完美为中心,但会有一个固定的波动范围。
这就是为什么繁殖计划会达到一个平台期。一旦你的父母马属性值非常接近,再进一步缩小它们的差距就没有帮助了——|parentA − parentB| 项已经接近零,剩下的只是一个你无法通过繁殖消除的常数。
匹配父母马仍然很重要,非常重要
在另一个极端,将你速度最好的马与速度最差的马进行繁殖,其波动范围为 9.49 + 2.85 = 12.34——是父母马完全相同情况下的四倍多。所以,将相似的马匹配对的建议是真实的;它只是有一个硬性限制。
实际情况是:
- 早期,匹配父母马是整个游戏的关键。减少
|A − B|几乎可以一对一地减少波动范围。 - 后期,它没有任何作用。你正在与0.3的最低值作斗争,剩下的唯一拉杆 (Lever) 就是数量——繁殖更多的马驹,并保留最好的那一小部分。
为什么尾部很薄
因为“随机数”是三个随机数的平均值而不是一个,结果会集中在中间。马驹的属性值落在波动范围的极边缘,需要三个随机数都接近同一个极端,这种情况很少见。大约三分之二的马驹落在标准差之内——对于属性值相同的顶级父母马来说,速度属性的标准差为0.47——而你所追求的异常值则远远超出这个范围。
因此,对于后期繁殖计划的真实预期是:大多数马驹仅凭运气就会比父母马的中间值略差,少数会略好,而进步则来自于只保留少数优秀的马驹。
与游戏的一个区别
这个计算器不会将超出范围的结果反射回范围内;而Minecraft会。因此,在属性值的最高端附近,实际游戏会将不可能的随机数折叠回来而不是截断,这会稍微改变极端尾部的形状。中间值、波动范围和上述的平台期不受影响。