【MCJE原理剖析】瓜类生长详细原理剖析
温馨提示:
本文相对较为硬核;
阅读本文需要提前了解mc的一些机制有:区段,随机刻,游戏刻(gt)等;
同时专业读者可以提前了解概率论相关知识。
目录:
随机刻
南瓜生长原理
高效方案筛选
种植方式的选择

随机刻
不过在讲解之前,首先需要了解随机刻,因为在理论生成速度计算中需要用到。
在randomTickSpeed = 3的情况下,每gt区段内随机刻选中其中一个方块(记为事件A)的概率为:
注:这里是简单的二项分布
不妨设在t游戏刻内,某一方块被随机刻选中的次数为事件T,事件T也服从二项分布,则在t游戏刻内,某一方块被选中的概率为:
这里验算一下:
一秒(20gt)内被选中至少一次:
五分钟内(6000gt)被选中至少一次:
946gt被选中至少一次:
这里和wiki( https://minecraft.fandom.com/zh/wiki/%E5%88%BB )的数据基本一致,如图所示。


南瓜生长原理:
接着来到重头戏,由于南瓜和西瓜的生长是共用的一个stem类,这里以南瓜生长为例,西瓜生长一样。由于只有梗成熟后才会结出瓜,这里不讲梗的生长过程(其实与小麦等作物相同)。废话不多说,直接上原理:
当南瓜梗被选中随机刻后:
1、首先判断南瓜梗处的光照是否≥9,如果<9,则南瓜不会生成。
2、接着计算生长速度Sg(Growth Speed),Sg初始化为1。具体如下:
1)判断梗周围的耕地数目
在以梗为中心的3*3的区域内,梗附着的耕地如果为干耕地Sg加1,湿耕地Sg加3,其毗邻的8个方块每块干耕地加1/4,每块湿耕地加3/4。
2)判断梗周围相同梗
如果南瓜梗毗邻只有一个方向(比如只有南北向,或者只有东西向)有南瓜梗,则对生长速度没有影响,如果两个方向都有南瓜梗或者斜角方向至少有一个南瓜梗,生长速度Sg直接减半。
3、获得该随机刻生成南瓜(记为事件B)的概率
注:int表示向下取整
4、如果幸运,判断得到的是生成南瓜,则会在梗附近的四个方向随机选中一个方向生成南瓜,如果所选方向的方块不是空气或其下方不是泥土类方块,则会生成失败,且不会再去尝试在其他方向生成南瓜。
设有效生成方向有n个(n≤4),则最终生成率为:
由此可以总结对南瓜生成的影响较大的因素有光照强度、耕地数目及其湿润程度、相邻是否相同的梗和瓜生成方向。
以上是在一个随机刻内生成南瓜的原理。设在t游戏刻内,南瓜生成的次数为事件Tp,则
Tp也服从二项分布,根据二项分布的期望公式计算出Tp的期望为:
简单了说,E(Tp)就是单个梗的在t游戏刻内的生成的南瓜的数目。因此单个梗每小时(t=3600*20gt)的生成速度为:

高效方案筛选:
有了以上的理论,下面探讨高效的南瓜生长方案。
要提高南瓜的生成概率率,重点在增加湿润耕地数目、避免相邻相同的梗以及保证尽可能多的生成方向。
通过编程筛选出以下几个方案:
以排列1为例计算单梗的生长速度:

1、排列1:

(1) 计算生长速度Sg:
附着湿润土地+3;4块毗邻湿润土地+4*(3/4);没有相同梗,不减半
(2) 计算生成概率:
(3) 四个方向都可以生成南瓜,n = 4,最终生成概率为:
(4) 因此单梗生成南瓜的理论速度为:
(5) 为了便于比较,这里计算单位面积单梗生成南瓜的速度:
注:此处每个梗平均占地4格(即4m^2)。
因此,单梗生成南瓜的理论速度:
单位面积单梗生成南瓜的速度:
2、排列2:

单梗生成南瓜的理论速度:
单位面积单梗生成南瓜的速度:
3、排列3:

单梗生成南瓜的理论速度:
单位面积单梗生成南瓜的速度:
4、还有一般瓜机常见的排列方式:

单梗生成南瓜的理论速度:
单位面积单梗生成南瓜的速度:
排列4的SdA仅供参考,但也显而易见,在相同的产量下,排列4对应实装机器的体积也是最大的,但这种排列方式目前看来不会被淘汰 。
值得注意的是:排列1和排列2进行比较,虽然排列2单位面积的梗的数量更多,但二者的单位面积单梗生成南瓜的速度是一样的。因此排列1是更为合理的选择,这也体现了合理密植的重要意义,于是就有了以下最高效的密植方式。


这样种植,南瓜梗和西瓜梗之间互不影响,且在相同的面积内得到了双倍的收益。经过实际测试在单个区块内所能实现的瓜机样机,其单梗生成南瓜的实测速度Spr ≈ 10.7 个/h(理论13.7个/h), 其单梗生成西瓜片的实测速度Smr ≈ 50 个/h(注意是西瓜片,不是西瓜方块,如果折算成西瓜方块,则与南瓜的生长速度差不多)。

种植方式的选择:
这里只探讨排列5和排列4:
排列5的最大的优点就是可以做的体积很小,其生产效率很高,但比较推荐在单人生存中使用。虽然排列5有着高达10.7个/h的实测速度,但是其有一个致命的缺点,收集必须采用漏斗矿车,无法使用水流,因此其无缘与大型服务器。
在我个人电脑实测(CPU:i5-9300H,GPU:GTX1650),如果产量为南瓜1w/h,西瓜片4.6w/h的情况下,游戏的mspt在4~6之间浮动,平均在5左右。此外,采用漏斗矿车并不抗卸载,如果采用很多漏斗矿车,不仅会增加卡顿,而且维护漏斗矿车非常不方便,因此这种高密度排列比较适合于单人生存中,但如果服务器的南瓜用量不大且这些卡顿不在话下的话,1w+的南瓜产量也是可以用的,它的体积会小很多。
排列4虽然是以上几种情况中的单位面积单梗生成南瓜的速度最小的,但是排列4可以采用水流收集,且mspt只有2左右,卡顿相对小很多,适用于服务器的特大型瓜机。

总结:
相信你已经对南瓜和西瓜的原理了解清楚了,如果你是单人生存的话,推荐选择排列5进行瓜机设计;如果是特大型瓜机,应用于服务器的话,推荐排列4设计瓜机。