其实是为了分析海带的生长规律,方便设计海带机。所以需要计算在给定时间内,海带生长高度的概率分布。这样就能计算出海带机的高度和收割的周期,尽可能降低卡顿和机器的体积,同时不影响海带的产量。
海带生长机制
海带生长机制的代码
狐狸经过代码分析,得出了海带的生长机制:
海带的生长基于随机刻。随机刻的机制是每gt在每个区段(16x16x16)里选随机3个方块做随机刻更新。若随机刻选中了海带顶端的方块,那么就会有14%的概率进行生长尝试,另外86%的概率什么也不做。若有幸进行了生长尝试,且符合海带的生长条件,那么海带就长一格。
另外,海带最初被种植时,会有一个随机的age值,概率分布为[0,24]的均匀分布。海带每生长一格,age就累加1。当age到25时,便不再生长。这个规则是防止海带无限生长。
海带生长高度的概率分布
假设有一片海带农场,一开始所有的海带都只有1格高,并同时开始生长。经过T时间(gt)后,海带的高度是什么样的分布呢?我们对其中一个海带进行分析。
运用经典的概率论进行分析,加上matlab辅助计算。
先计算每次随机刻海带长一格的概率。由随机刻的机制,海带顶端被选中的概率为(1/16)^3,而选中后生长的概率为14%,那么一次随机刻且生长的概率为:
式(1)
由式(1)可以看出,p 的值很小。假设在较长的一段时间里,经历了很多次随机刻,那么就可以用二项分布的模型来计算。
设随机刻总数为 n,根据二项分布,生长 r 次的概率为:
式(2)
其中 C(n, r) 表示组合数,有:
式(3)
由式(2)可知,理论上 r 的值可以很大,即海带生长很多次也是可能的,只不过概率很低。
为了能更直观地看出 r 的概率分布,式(2)的图如所示。
尝试生长的次数(1小时)
然而,海带并不能无限生长,因为海带初始age值限制了生长高度。
设最大生长高度为 hmax ,则有:
式(4)
易知,生长高度 h 与生长次数 r 的关系为:
式(5)
那么在 hmax 一定的条件下,生长高度为 h 的概率分布为:
式(6)
由式(6)可知,当 h 小于 hmax时,概率分布为二项分布;当 h 大于 hmax时,概率为0。为了更直观地了解,设定hmax的值为15,10,5,并分别作图。
考虑不同age时,生长高度的概率分布(1小时)
由上图可知,初始 age 相当于一个高度上限,超过上限的海带就不再生长。
那么,将 age 值为0,1,2,…,25的概率分布都计算出来,并加权平均,即可得出生长高度的总体概率分布为:
式(7)
其中,由于 age 为均匀分布,那么 P(hmax=j) 的值为常数:
式(8)
那么式(8)可以化简为:
式(9)
将式(8)的25项求和分为三段计算:
式(10)
将式(6)代入式(10),可得:
式(11)
注意到:第一项为0;第三项与求和变量 j 无关。那么可以化简为:
式(12)
最后将式(2)代入式(12),得到最终分布的计算公式:
式(13)
作图可知,age 的影响使得整个分布向左偏移了。图中,红线表示尝试生长次数 r 的概率分布,柱状图表示实际生长高度 h 的概率分布。
生长高度的总体概率分布(1小时)
现在考虑不同时间长度,海带生长高度的分布会如何变化。将生长时间设置为5分钟、10分钟、2小时、4小时,用式(13)进行计算,如下图所示。
5分钟,10分钟,2小时,4小时 生长高度概率分布
可见,在时间较少的情况下,age的影响不明显,很少有超过5格的海带,分布近似于二项分布。而时间较长的情况下,初始age值较高的海带已经生长到上限,概率分布逐渐趋近于0.04。可以推断,最终海带生长高度的分布趋近于均匀分布。
对海带机的启示
由上图可见,低于5分钟的生长时间不足以让海带到达生长高度上限,且生长的高度也有限。所以建议预留3-5格的生长空间,收割周期设置为4分钟左右,正好是一个漏斗计时器的周期。