MC Toolkit

指南 / 建筑与资源

马匹繁殖:双亲再完美,也保证不了子代完美

子代的数值以双亲的中点为基准,但无论双亲多么接近,离散度都有一个 0.3 × 属性范围的下限。这一项永远无法消除,举例来说,两匹速度已经拉满的父母,配出来的马驹平均速度也只有大约 13.84,永远达不到满值。

马匹繁殖通常被描述为“子代取双亲的平均值,再加上一些随机性”。前半句完全正确。后半句则掩盖了真正决定你繁殖计划要花多久的部分。

模型

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| 为零,离散度仍然是:

属性完整范围不可消除的离散度
最大生命值15 – 304.50
跳跃力度1.09 – 5.291.26
移动速度4.74 – 14.232.85

所以,繁殖两匹速度拉满的马,子代以 14.23 为中心,标准差为 0.47——而且由于游戏会把超过上限的随机值折返回来,每一匹实际子代的速度都小于或等于 14.23,它们的平均值约为 13.84,最低可能落到约 12.81。两匹完美的双亲并不能产出完美的子代;它们产出的子代以完美为中心,但被一个固定的量所分散。

这就是繁殖计划会进入平台期的原因。一旦双亲的数值足够接近,再进一步拉近就毫无帮助了——|parentA − parentB| 这一项已经接近零,剩下的只是一个你无法通过繁殖消除的常数。

双亲匹配仍然很重要,而且非常重要

在另一个极端,把你最好的速度马和最差的马配对,离散度为 9.49 + 2.85 = 12.34——是双亲相同下限的四倍多。所以“配对相似的马”这条建议是有道理的;只是它有一个硬性上限。

实际的情况是这样的:

  • 早期,匹配双亲就是全部。缩小 |A − B| 几乎能一比一地缩小离散度。
  • 后期,它毫无作用。你在对抗 0.3 的下限,唯一剩下的手段就是数量——繁殖更多子代,只保留最顶端的那一批。

为什么尾巴这么细

因为该随机值是三个随机数的均值而非单个随机数,结果会聚集在中间附近。一匹落在离散度最边缘的子代,需要三个随机数都接近同一个极端,这非常罕见。大约三分之二的子代落在一个标准差之内——双亲速度都拉满时是 0.47——而你要找的离群值远在这个范围之外。

所以,对后期繁殖计划的诚实预期是:大多数子代仅凭运气就会略差于双亲的中点,少数会略好一些,而进步来自于只保留那少数几匹。

与游戏的一处差异

这个计算器不会把超出范围的结果折返回范围内;Minecraft 会。所以在属性接近顶值时,真实游戏会把不可能的随机值折返回来,而不是截断,这会略微改变极端尾巴的形状。上述离散度和平台期不受影响;不过在接近上限时,真实平均值会略低于中点,因为钟形的上半部分被折返了下来。

马匹繁殖计算器 →

更多指南

查看全部 →