欢迎光临散文网 会员登陆 & 注册

【MCJE原理剖析】瓜类生长详细原理剖析

2022-10-19 13:28 作者:易名亦名  | 我要投稿

温馨提示:

本文相对较为硬核;

阅读本文需要提前了解mc的一些机制有:区段,随机刻,游戏刻(gt)等;

同时专业读者可以提前了解概率论相关知识。


目录:

  • 随机刻

  • 南瓜生长原理

  • 高效方案筛选

  • 种植方式的选择

随机刻

不过在讲解之前,首先需要了解随机刻,因为在理论生成速度计算中需要用到。

在randomTickSpeed = 3的情况下,每gt区段内随机刻选中其中一个方块(记为事件A)的概率为:

P%5Cleft%20%5C%7B%20A%E2%89%A00%20%5Cright%20%5C%7D%20%20%3D%201-C_%7B3%7D%5E%7B0%7D%20(%5Cfrac%7B1%7D%7B4096%7D%20)%5E%7B0%7D(1-%5Cfrac%7B1%7D%7B4096%7D)%5E%7B3%7D%20%3D%200.0732%5C%25

注:这里是简单的二项分布 A%20%5Csim%20b(3%2C%5Cfrac%7B1%7D%7B4096%7D%20)

不妨设在t游戏刻内,某一方块被随机刻选中的次数为事件T,事件T也服从二项分布T%5Csim%20b(t%2C0.0732%5C%25),则在t游戏刻内,某一方块被选中的概率为:

P%5Cleft%20%5C%7B%20T%E2%89%A00%20%5Cright%20%5C%7D%20%20%3D%201-C_%7Bt%7D%5E%7B0%7D%20(0.0732%5C%25)%5E%7B0%7D(1-0.0732%5C%25)%5E%7Bt%7D

这里验算一下:

一秒(20gt)内被选中至少一次:

P%5Cleft%20%5C%7B%20T%E2%89%A00%20%5Cright%20%5C%7D%20%7C_%7Bt%3D20%7D%20%3D%201-C_%7B20%7D%5E%7B0%7D%20(0.0732%5C%25)%5E%7B0%7D(1-0.0732%5C%25)%5E%7B20%7D%3D1.45%5C%25

五分钟内(6000gt)被选中至少一次:

P%5Cleft%20%5C%7B%20T%E2%89%A00%20%5Cright%20%5C%7D%20%7C_%7Bt%3D6000%7D%20%3D%201-C_%7B6000%7D%5E%7B0%7D%20(0.0732%5C%25)%5E%7B0%7D(1-0.0732%5C%25)%5E%7B6000%7D%3D98.76%5C%25

946gt被选中至少一次:

P%5Cleft%20%5C%7B%20T%E2%89%A00%20%5Cright%20%5C%7D%20%7C_%7Bt%3D946%7D%20%3D%201-C_%7B946%7D%5E%7B0%7D%20(0.0732%5C%25)%5E%7B0%7D(1-0.0732%5C%25)%5E%7B946%7D%3D49.98%5C%25

这里和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)的概率

P%5Cleft%20%5C%7BB%5Cright%20%5C%7D%20%3D%20%5Cfrac%7B1%7D%7Bint(%5Cfrac%7B25%7D%7BSg%7D)%20%2B%201%7D      

      注:int表示向下取整

4、如果幸运,判断得到的是生成南瓜,则会在梗附近的四个方向随机选中一个方向生成南瓜,如果所选方向的方块不是空气或其下方不是泥土类方块,则会生成失败,且不会再去尝试在其他方向生成南瓜。

设有效生成方向有n个(n≤4),则最终生成率为:

Pf%20%3D%20%5Cfrac%7Bn%7D%7B4%7DP%5C%7BB%5C%7D

由此可以总结对南瓜生成的影响较大的因素有光照强度耕地数目及其湿润程度相邻是否相同的梗瓜生成方向

 

以上是在一个随机刻内生成南瓜的原理。设在t游戏刻内,南瓜生成的次数为事件Tp,则

Tp%20%5Csim%20b(t%2C0.0732%5C%25Pf)

Tp也服从二项分布,根据二项分布的期望公式计算出Tp的期望为:

E(Tp)%20%3D%20t*0.0732%5C%25Pf

简单了说,E(Tp)就是单个梗的在t游戏刻内的生成的南瓜的数目。因此单个梗每小时(t=3600*20gt)的生成速度为:

S%20%3D3600(s)*20(gt)*0.0732%5C%25pf%20%3D%2052.7Pf%20(%E4%B8%AA%2Fh)



高效方案筛选:

有了以上的理论,下面探讨高效的南瓜生长方案。

要提高南瓜的生成概率率,重点在增加湿润耕地数目避免相邻相同的梗以及保证尽可能多的生成方向

通过编程筛选出以下几个方案:

以排列1为例计算单梗的生长速度:

图例

1、排列1:

排列1


(1)     计算生长速度Sg:

                附着湿润土地+3;4块毗邻湿润土地+4*(3/4);没有相同梗,不减半

Sg%20%3D%20(1%2B3%2B4*%5Cfrac%7B3%7D%7B4%7D)*1%20%3D%207

(2)     计算生成概率:

 P%5Cleft%20%5C%7BB%5Cright%20%5C%7D%20%3D%20%5Cfrac%7B1%7D%7Bint(%5Cfrac%7B25%7D%7BSg%7D)%20%2B%201%7D%3D%5Cfrac%7B1%7D%7B3%2B1%7D%3D0.25

(3)     四个方向都可以生成南瓜,n = 4,最终生成概率为:

Pf%20%3D%20%5Cfrac%7Bn%7D%7B4%7D*P%5C%7BB%5C%7D%20%3D%5Cfrac%7B4%7D%7B4%7D*P%5C%7BB%5C%7D%3D%200.25

(4)     因此单梗生成南瓜的理论速度为:

S%20%3D%2052.7*Pf%3D52.7*0.25%3D%2013.18%E4%B8%AA%2Fh

(5)     为了便于比较,这里计算单位面积单梗生成南瓜的速度

SdA%20%3D%2013.18%2F4%20%3D%203.29%20%E4%B8%AA%2F(h*m%5E2)

                注:此处每个梗平均占地4格(即4m^2)。

因此,单梗生成南瓜的理论速度:

S%20%3D%2013.18%E4%B8%AA%2Fh

单位面积单梗生成南瓜的速度:

SdA%20%3D%203.29%20%E4%B8%AA%2F(h*m%5E2)

 

2、排列2:

排列2


单梗生成南瓜的理论速度:

S%20%3D%206.59%E4%B8%AA%2Fh

单位面积单梗生成南瓜的速度:

SdA%20%3D%203.29%20%E4%B8%AA%2F(h*m%5E2)

 

3、排列3:

排列3


单梗生成南瓜的理论速度:

S%20%3D5.27%E4%B8%AA%2Fh

单位面积单梗生成南瓜的速度:

SdA%20%3D%202.64%E4%B8%AA%2F(h*m%5E2)

4、还有一般瓜机常见的排列方式:

排列4


单梗生成南瓜的理论速度:

S%20%3D6.59%E4%B8%AA%2Fh

单位面积单梗生成南瓜的速度:

SdA%20%3D%20%5Cfrac%7B6.59%7D%7B6%7D%3D1.10%E4%B8%AA%2F(h*m%5E2)

排列4的SdA仅供参考,但也显而易见,在相同的产量下,排列4对应实装机器的体积也是最大的,但这种排列方式目前看来不会被淘汰 。

值得注意的是:排列1和排列2进行比较,虽然排列2单位面积的梗的数量更多,但二者的单位面积单梗生成南瓜的速度是一样的。因此排列1是更为合理的选择,这也体现了合理密植的重要意义,于是就有了以下最高效的密植方式。

图例
排列5


这样种植,南瓜梗和西瓜梗之间互不影响,且在相同的面积内得到了双倍的收益。经过实际测试在单个区块内所能实现的瓜机样机,其单梗生成南瓜的实测速度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设计瓜机。

 


【MCJE原理剖析】瓜类生长详细原理剖析的评论 (共 条)

分享到微博请遵守国家法律