我的世界Mekanism中的能量网络及其传输速率计算
Mekanism的电网是相当特殊的,其能量传输速率有一套独特的计算方法。
完全被它整懵逼了,于是就有了这篇教程。9102年了,也不知火星没有。
预备知识:
Mekanism中所有相连的线缆(Transmitter)称为一个网络(Network)。
一个网络是一个整体,其能量传输速率处处相等。
网络内部必须以线缆直接相连,通过机器来间接相连的则视为不同的网络。
网络的最大传输速率(Rate)与最大缓存容量(Capacity)在数值上相等,只是单位不同。
这是因为,能量通过网络传输的过程本质上是这样的:
1. 供电设备将能量存入网络缓存
2. 用电设备从网络缓存中取出能量
这一过程每 tick 进行一次,因此,一个网络能量传输速率的上限在数值上等于其最大缓存容量。
于是有下列结论。
结论一:
同等级线缆连成网络,其传输速率与网络中的线缆数量成正比。
这一点很好理解。由前文得知,网络的传输速率取决于其缓存大小。一个网络中线缆越多,其缓存容量显然就越大,传输能量的速度也就越快。(仅适用于网络中全是同等级线缆的情况!)
如图所示,三根 3.2kJ/t 的基础通用线缆相连,其传输速率为 3.2 * 3 = 9.6kJ/t
这与线缆的连接拓扑方式无关,如图所示,夏姬八连也可以。
共28根基础通用线缆相连,传输速率为 28 * 3.2 = 89.6kJ/t
可以看到网络读取器给出的读数是89.57,与理论值之间有些许误差,这一误差与下文要讲的算法有关。
结论二:
当不同等级线缆连成网络时,Mekanism采用了一种反直觉的算法,具体如下:
1). 单独计算网络中每一节线缆的速率的倒数
2). 将这些倒数相加,得到一个倒数和
3). 用网络中的线缆总数除以倒数和,得到平均速率
(用数学术语描述,以上三步实际上是在计算“调和平均数”)
4). 用平均速率乘以线缆总数,得到最终结果,即为网络的传输速率。
例题:
如图所示,计算该网络的传输速率。
解:
该网络中有基础通用线缆*3,高级通用线缆*2,精英通用线缆*1,三种线缆的传输速率分别为3200、12800、64000(J/t)
按照前文所述的算法进行计算:
首先求得网络中线缆速率的调和平均数:
用调和平均数乘以线缆总数,即为整个网络的传输速率:
用网络读取器验证一下,结果正确。
误差来源于浮点运算中的精度丢失,可以忽略。
附加结论:
由调和平均数的性质可知:
调和平均数易受极端值的影响,且受极小值的影响比受极大值的影响更大。
因此在高级线缆组成的网络中连入低级线缆,会使网络的传输速率骤降。
如图所示,终极通用线缆*30组成的网络,其传输速率为9.6MJ/t
但若连入1根基础通用线缆,其传输速率便骤降至2.36MJ/t
继续连入基础线缆,传输速率将继续下降。连入4根基础线缆时,速率已不足原来的十分之一。
因此,当你拥有了庞大的高级线缆网络后,切勿因贪图便宜而连入低级线缆,这会使整个网络的传输速率骤降,能量需求较大的自动化生产线很可能因此而瘫痪,反应堆和工业涡轮等高阶发电设备的输出也很可能因此而受限。