我的世界标准化树场速度计算
我的世界红石被玩家研究的越来越透彻,各种高速树场的设计也是涌现了出来,各种每分钟几百甚至几千的树场层出不穷,但是你们知道树场的速度吗?今天游戏园小编为大家带来了我的世界树场速度的计算,喜欢的朋友快来看看吧,希望能帮助到大家哦!
作者:maple_in_thu
随着FTF的出现和发展,现在越来越多的高速树场设计涌现出来,相互之间为了几百几千的提高而较劲着,然而树场的运行速度是存在随机性的,而大家测速通 常都是测试1分钟,然后乘以60作为一个小时的产量,然而一分钟相差1棵树,最后计算结果也相差了三四百,而通常测试相差的远远不止1棵,因此几百几千的 所谓提高有时候只是测量误差。
树场以机械为主,时序和延时基本是固定的,但是有两个存在随机分布的量,造成了大家测量结果的不可靠。
1.每棵树的产出
2.树长出的时间
第一种相对容易解决,现在也有很多计数方式是每分钟多少棵树,回避了每棵树的计算,但让人对实际产量的感受不够直观。第二种则是无论如何也回避不了了。
第二个问题涉及简单的随机分布的计算,看不懂的可以直接看结论,首先讲解一下树生长的时间规律,这里我们忽略掉树的自然生长,仅考虑骨粉的使用。
树的生长有2个阶段,每次撒一个骨粉,mc会取0~1.0之间的一个随机数,随机数小于0.45,则生长一个阶段,生长了两个阶段树苗就变成了树。
基本知识就这些。下面推导树场中树木生长,平均究竟要用多少时间。
第一步先计算撒第x次骨粉时树苗长成了树木的概率px
这个概率相当于前x-1次骨粉中有一次让树苗生长了第一个阶段,同时第x次骨粉让树苗生长了第二个阶段。
前者的概率为(x-1)*0.45*0.55^(x-2),后者概率为0.45
因此px(x)=(x-1)*(0.45^2)*(0.55^(x-2))
接下来考虑现在多发射器一起为一个树苗喷洒骨粉,N个发射器每次同时发一次,那么如果上面的x≤N,则发射器发射1次,树苗就长成了树木,若N
因此发射器发射y次时,树苗长成树木的概率py为
py(y)=∑px(i),(i=N*y, N*y-1, N*y-2, ... , N*y-(y-1))
这时候就可以算树苗在N发射器齐发的情况下,平均需要多少次发射了,期望值ey为
ey=∑i*py(i),(i=1, 2, 3, 4, ... , ∞)
这个无穷级数的解析表达式化建起来比较麻烦,我就直接取了N为1,2,3,4直接数值求解出值了。如下
N=1, ey=4.444444
N=2, ey=2.451150
N=3, ey=1.787229
N=4, ey=1.463564
N表示树场有多少个发射器,ey表示树苗平均需要几次撒骨粉才能变成树木
现在随机的问题解决了,再来讨论树场的周期究竟有多长。
先对树场的周期做个定义,树场周期的起点和终点定义为树木长出的瞬间,而树场周期则是连续两次树木长出瞬间间隔的时间。
现在再将一个树场周期分解为2部分,分界点为树苗第一次被发射器喷骨粉的瞬间。
从树木长出到新放的树苗第一次被发射骨粉,是树场周期第一阶段,从树苗第一次被发射骨粉,到树苗长成树木,是树场周期第二阶段。
第一阶段再作一个细的划分,分界点是泥土可以再次被放置树苗的瞬间,从树木长出瞬间到树苗可以放置的瞬间,是机械时序阶段,从可以放置树苗,到放置的树苗第一次被发射器喷洒骨粉,是放置树苗阶段。
机械时序阶段的时间取决于树场的时序设计,例如NTF的机械时序阶段为4.5 tick。
我的世界红石被玩家研究的越来越透彻,各种高速树场的设计也是涌现了出来,各种每分钟几百甚至几千的树场层出不穷,但是你们知道树场的速度吗?今天游戏园小编为大家带来了我的世界树场速度的计算,喜欢的朋友快来看看吧,希望能帮助到大家哦!
作者:maple_in_thu
随着FTF的出现和发展,现在越来越多的高速树场设计涌现出来,相互之间为了几百几千的提高而较劲着,然而树场的运行速度是存在随机性的,而大家测速通 常都是测试1分钟,然后乘以60作为一个小时的产量,然而一分钟相差1棵树,最后计算结果也相差了三四百,而通常测试相差的远远不止1棵,因此几百几千的 所谓提高有时候只是测量误差。
树场以机械为主,时序和延时基本是固定的,但是有两个存在随机分布的量,造成了大家测量结果的不可靠。
1.每棵树的产出
2.树长出的时间
第一种相对容易解决,现在也有很多计数方式是每分钟多少棵树,回避了每棵树的计算,但让人对实际产量的感受不够直观。第二种则是无论如何也回避不了了。
第二个问题涉及简单的随机分布的计算,看不懂的可以直接看结论,首先讲解一下树生长的时间规律,这里我们忽略掉树的自然生长,仅考虑骨粉的使用。
树的生长有2个阶段,每次撒一个骨粉,mc会取0~1.0之间的一个随机数,随机数小于0.45,则生长一个阶段,生长了两个阶段树苗就变成了树。
基本知识就这些。下面推导树场中树木生长,平均究竟要用多少时间。
第一步先计算撒第x次骨粉时树苗长成了树木的概率px
这个概率相当于前x-1次骨粉中有一次让树苗生长了第一个阶段,同时第x次骨粉让树苗生长了第二个阶段。
前者的概率为(x-1)*0.45*0.55^(x-2),后者概率为0.45
因此px(x)=(x-1)*(0.45^2)*(0.55^(x-2))
接下来考虑现在多发射器一起为一个树苗喷洒骨粉,N个发射器每次同时发一次,那么如果上面的x≤N,则发射器发射1次,树苗就长成了树木,若N
因此发射器发射y次时,树苗长成树木的概率py为
py(y)=∑px(i),(i=N*y, N*y-1, N*y-2, ... , N*y-(y-1))
这时候就可以算树苗在N发射器齐发的情况下,平均需要多少次发射了,期望值ey为
ey=∑i*py(i),(i=1, 2, 3, 4, ... , ∞)
这个无穷级数的解析表达式化建起来比较麻烦,我就直接取了N为1,2,3,4直接数值求解出值了。如下
N=1, ey=4.444444
N=2, ey=2.451150
N=3, ey=1.787229
N=4, ey=1.463564
N表示树场有多少个发射器,ey表示树苗平均需要几次撒骨粉才能变成树木
现在随机的问题解决了,再来讨论树场的周期究竟有多长。
先对树场的周期做个定义,树场周期的起点和终点定义为树木长出的瞬间,而树场周期则是连续两次树木长出瞬间间隔的时间。
现在再将一个树场周期分解为2部分,分界点为树苗第一次被发射器喷骨粉的瞬间。
从树木长出到新放的树苗第一次被发射骨粉,是树场周期第一阶段,从树苗第一次被发射骨粉,到树苗长成树木,是树场周期第二阶段。
第一阶段再作一个细的划分,分界点是泥土可以再次被放置树苗的瞬间,从树木长出瞬间到树苗可以放置的瞬间,是机械时序阶段,从可以放置树苗,到放置的树苗第一次被发射器喷洒骨粉,是放置树苗阶段。
机械时序阶段的时间取决于树场的时序设计,例如NTF的机械时序阶段为4.5 tick。
【重要部分】
绝大多数树场的骨粉喷洒都是由高频时钟驱动的,高频时钟一个tick是上升沿,一个tick下降沿,交替出现,频率为5Hz,周期为2tick。
仔细看第一阶段的定义。
第一阶段的起始时刻为木头生成的瞬间,这个瞬间同时也是发射器发射骨粉的瞬间,也就是高频时钟上升沿的瞬间。
第一阶段的终止时刻为新放置的树苗第一次被喷射骨粉的瞬间,这个瞬间也是发射器发射骨粉的瞬间,也就是高频时钟上升沿的瞬间。
因此第一阶段为高频时钟的两个上升沿间距,其中必然包含了整数个时钟周期,因此第一阶段时间长度必然是2 tick的整数倍。
============================================
接下来的第二阶段是从第一次被骨粉喷洒到长成木头,而发射器连续两次喷洒之间的间隔是2tick,因此第二阶段的平均时间是2*(ey-1),忘记ey是什么的往上翻。
同时第二阶段每次时间长度虽然不一定相同,但第二阶段的开始和终止时间点也同样满足上述性质,因此第二阶段时间长度必然也是2 tick整数倍。
因此每个树场周期都是2 tick整数倍。
同时玩家右键按住不放时,对游戏输入的右键相当于2 tick一次,因此树场周期是右键周期的整数倍,两者的相位差不会改变。
============================================
综合上述结论,我们再来梳理一下。
在机械时序阶段的时间是固定的,例如NTF是4.5 tick
在4.5 tick之后的第一次右键(也就是放下树苗的事件)可能发生在4.5、5、5.5、6当中其中的任意一个。
而4.5 tick之后的第一次发射器喷骨粉,由于需要满足2tick要求,最近的一次应当发生在6 tick,此时树苗已经放置,且第一次被发射器喷骨粉,因此树场进入第二阶段,第二阶段又经历2tick整数倍的时间,重新回到第一个周期,由于树场周期 是右键周期的整数倍,因此上一次在4.5 tick放置树苗,下个周期还会在4.5tick放置,保持不变,则第一个阶段的结束时间也保持不变为6 tick,而第二阶段的结束时间平均值为2*(ey-1),对于NTF这样的四发射树场来说,是0.927 tick
因此我们得到如下重要的结论:
树场周期第一阶段为固定值,长度为2 tick整数倍
树场周期第二阶段的均值为2*(ey-1)
其中ey如下,N为发射器数量:
N=1, ey=4.444444
N=2, ey=2.451150
N=3, ey=1.787229
N=4, ey=1.463564
因此对于特定的N,树场周期的可能值仅有有限的几个。
N=1时,可能的树场周期为(第一部分分别为2tick、4 tick、6tick、8tick)
0.888888秒、1.088888秒、1.288888秒、1.488888秒。
对应的效率为(原木/小时)
24300、19837、16758、14507
【结论】
如下表,竖着的1,2,3,4是N,即你的树场使用了多少发射器并发,横着的则是表示第一阶段的tick数。表中的数则表示每小时的产出,所有的树场的真实效率均值都应当是在这个表中。
至于第一阶段tick数和机械时序阶段的关系,如果机械时序阶段时间比2n tick 短至少1.5 tick,则可以确保第一阶段时间落在 2n,否则可能会落到2(n+1),所以第一阶段2 tick这一栏基本可以放弃了。NTF目前处于6 tick这一栏。
所以想知道自己的树场是什么速度,测试多组数据,得到一个大致的值,再根据发射器的数量,对照表中最接近的数。
例如FTF,实验测得23000左右,对应表中22560
例如NTF,实验测得36000左右,对应表中31181
注意虽然是大致的值,也一定要多测量几次!里如NFTF测了25000,但实际仍然是22560。
【提速指导】
现在NTF已经做到了4发射,第一阶段稳定为6 tick,想按照图中的提高到4 tick,相当于机械时序阶段只能有2.5 tick,这个已经基本不可能了。
想进一步提高速度,唯有突破上述模式。
注意到我在上述讨论中,给树场加入了两个常见的限定
1. 树场的高频时钟是连续运行的,和树场的机械相互独立的。
2. 树场的多个发射器是同时发射,周期都是2 tick。
而NTF将机械时序阶段压缩到了4.5 tick,在放置树苗阶段却等待了1.5 tick,这实在是十足的浪费。
可以做的改进
1.将高频时钟在每个树场周期和树场同步一下,每次在5 tick时候输出上升沿信号,让第一阶段缩短到5 tick,其效率也会随之提升到36000+
2.将多个发射器在不同tick交替发射,例如每 tick交错,相当于5 tick时候就进入了第二阶段。如果每gt交错,速度会更快。
当然,如果能把机械时序部分进一步压缩,那自然效率也会增长。
精品推荐
相关文章
更多+热门搜索
手游排行榜
- 最新排行
- 最热排行
- 评分最高
-
其他游戏 大小:225M
-
休闲益智 大小:81.43MB
-
角色扮演 大小:96.97MB
-
休闲益智 大小:21M
-
角色扮演 大小:600MB