切换语言: English

教程:品质升级数学

From Official Factorio Wiki
Jump to navigation Jump to search

怎么样的品质升级工厂能产出最多的传说物品?

很可惜这个问题并不简单,很多因素都能够影响到答案。但是好在插件的可能性是有限的,至于无限科技,简单起见就直接忽略掉吧。先上结论:

最佳配比

下面的表格显示了品质插件产能插件的最佳配比,回收机全放品质插件,因为只能放品质插件。数值可能不是整数,这是因为通常不会只用一台机器,而不同机器可以装不一样的插件。比方说,“3.67 品质插件 / 1.33 产能插件”可以表示总共 4 台机器,其中 3 台装了 4 个品质插件和 1 个产能插件,剩下一台装了 3 个品质插件和 2 个产能插件。

下面“X 品质所用的插件”一列表示,生产 X 品质物品的机器需要使用何种插件配比。

插件全都没有品质
机器 基础品质所用的插件 精良品质所用的插件 稀有品质所用的插件 史诗品质所用的插件 传说品质所用的插件 产出传说物品的比例 回收的物品*
化工厂 3 品质
0 产能
3 品质
0 产能
3 品质
0 产能
3 品质
0 产能
0 品质
3 产能
0.034014% 2940
组装机3型 4 品质
0 产能
4 品质
0 产能
4 品质
0 产能
4 品质
0 产能
0 品质
4 产能
0.046275% 2161
铸造厂 4 品质
0 产能
4 品质
0 产能
4 品质
0 产能
4 品质
0 产能
0 品质
4 产能
0.133814% 747
电磁工厂 5 品质
0 产能
5 品质
0 产能
5 品质
0 产能
5 品质
0 产能
0 品质
5 产能
0.176712% 566
低温工厂 6 品质
2 产能
6 品质
2 产能
6 品质
2 产能
6.5 品质
1.5 产能
0 品质
8 产能
0.119134% 840
插件用精良品质
机器 基础品质所用的插件 精良品质所用的插件 稀有品质所用的插件 史诗品质所用的插件 传说品质所用的插件 产出传说物品比例 回收的物品*
化工厂 3 品质
0 产能
3 品质
0 产能
3 品质
0 产能
3 品质
0 产能
0 品质
3 产能
0.059498% 1681
组装机3型 3.75 品质
0.25 产能
3.75 品质
0.25 产能
3.8 品质
0.2 产能
3.9 品质
0.1 产能
0 品质
4 产能
0.082296% 1216
铸造厂 4 品质
0 产能
4 品质
0 产能
4 品质
0 产能
4 品质
0 产能
0 品质
4 产能
0.243699% 410
电磁工厂 4.7 品质
0.3 产能
4.67 品质
0.33 产能
4.75 品质
0.25 产能
4.9 品质
0.1 产能
0 品质
5 产能
0.324189% 309
低温工厂 4.6 品质
3.4 产能
4.6 品质
3.4 产能
4.67 品质
3.33 产能
5 品质
3 产能
0 品质
8 产能
0.257621% 389
插件用稀有品质
机器 基础品质所用的插件 精良品质所用的插件 稀有品质所用的插件 史诗品质所用的插件 传说品质所用的插件 产出传说物品比例 回收的物品*
化工厂 2.8 品质
0.2 产能
2.8 品质
0.2 产能
2.9 品质
0.1 产能
2.9 品质
0.1 产能
0 品质
3 产能
0.100660% 994
组装机3型 3 品质
1 产能
3.1 品质
0.9 产能
3.2 品质
0.8 产能
3.33 品质
0.67 产能
0 品质
4 产能
0.145220% 689
铸造厂 3.5 品质
0.5 产能
3.5 品质
0.5 产能
3.6 品质
0.4 产能
3.9 品质
0.1 产能
0 品质
4 产能
0.424039% 236
电磁工厂 3.6 品质
1.4 产能
3.6 品质
1.4 产能
3.6 品质
1.4 产能
3.9 品质
1.1 产能
0 品质
5 产能
0.588510% 170
低温工厂 3.6 品质
4.4 产能
3.6 品质
4.4 产能
3.6 品质
4.4 产能
3.9 品质
4.1 产能
0 品质
8 产能
0.565030% 177
插件用史诗品质
机器 基础品质所用的插件 精良品质所用的插件 稀有品质所用的插件 史诗品质所用的插件 传说品质所用的插件 产出传说物品比例 回收的物品*
化工厂 2.33 品质
0.67 产能
2.4 品质
0.6 产能
2.4 品质
0.6 产能
2.4 品质
0.6 产能
0 品质
3 产能
0.152486% 656
组装机3型 2.5 品质
1.5 产能
2.5 品质
1.5 产能
2.6 品质
1.4 产能
2.8 品质
1.2 产能
0 品质
4 产能
0.232966% 430
铸造厂 2.7 品质
1.3 产能
2.7 品质
1.3 产能
2.75 品质
1.25 产能
3 品质
1 产能
0 品质
4 产能
0.664130% 151
电磁工厂 2.6 品质
2.4 产能
2.6 品质
2.4 产能
2.67 品质
2.33 产能
2.9 品质
2.1 产能
0 品质
5 产能
0.974700% 103
低温工厂 2.6 品质
5.4 产能
2.6 品质
5.4 产能
2.6 品质
4.4 产能
2.8 品质
4.2 产能
0 品质
8 产能
1.122444% 90
插件用传说品质
机器 基础品质所用的插件 精良品质所用的插件 稀有品质所用的插件 史诗品质所用的插件 传说品质所用的插件 产出传说物品比例 回收的物品*
化工厂 1.67 品质
1.33 产能
1.67 品质
1.33 产能
1.67 品质
1.333 产能
1.8 品质
1.2 产能
0 品质
3 产能
0.344061% 291
组装机3型 1.67 品质
2.33 产能
1.67 品质
2.33 产能
1.67 品质
2.33 产能
1.8 品质
2.2 产能
0 品质
4 产能
0.586191% 171
铸造厂 1.4 品质
2.6 产能
1.4 品质
2.6 产能
1.4 品质
2.6 产能
1.5 品质
2.5 产能
0 品质
4 产能
1.624266% 62
电磁工厂 1 品质
4 产能
1 品质
4 产能
1 品质
4 产能
1 品质
4 产能
0 品质
5 产能
2.722332% 37
低温工厂 0 品质
8 产能
0 品质
8 产能
0 品质
8 产能
0 品质
8 产能
0 品质
8 产能
4.835199% 21

* “回收的物品”表示,需要制作多少物品,然后放进整个升品工厂里才能够产出一个传说物品。光看名称可能会以为它会计入被回收多次的物品,其实并没有。

机器数量

假设精良物品源源不断地流入,也就是说总是会填满缓冲区,那么可以计算出系统内各个物品的比例,进而计算出生产各种品质的机器所需的数量。在每次迭代结束后,令 m1,k+1=100%m2,k+1m3,k+1m4,k+1,然后根据插件可以算出机器的速度(假设只装产能插件的机器没有被装了速度插件插件塔影响到),进而可以计算出各种机器所需的数量。详见后文的计算。

每个回收机所需的机器
机器 回收机 生产基础品质的机器 生产精良品质的机器 生产稀有品质的机器 生产史诗品质的机器 生产传说品质的机器
化工厂 1 4.418130519 0.037216657 1.294369664 0.009779 0.431955
组装机3型 1 4.733868899 0.052316655 1.527502978 0.015336 0.52576
铸造厂 1 4.314446 0.082198 1.683088 0.03016 0.58448
电磁工厂 1 4.494435 0.116985 1.93479 0.049665 0.60795
低温工厂 1 5.23556 0.21384 2.53374 0.1034 0.594
每个传说机器所需的其它机器(密率)
机器 回收机 生产基础品质的机器 生产精良品质的机器 生产稀有品质的机器 生产史诗品质的机器 生产传说品质的机器
化工厂 90.1223 331.8198 38.5325 11.2893 2.9653 1
组装机3型 52.8432 208.4632 30.3992 9.8094 2.8783 1
铸造厂 24.7668 89.0483 19.9206 7.7712 2.8592 1
电磁工厂 16.5379 61.9418 17.4010 7.4908 3.1822 1
低温工厂 10.8718 47.4350 18.2124 8.8138 4.2654 1
每个传说机器所需的其它机器(约率)
机器 回收机 生产基础品质的机器 生产精良品质的机器 生产稀有品质的机器 生产史诗品质的机器 生产传说品质的机器
化工厂 53 198 23 7 2 1
组装机3型 31 123 18 6 2 1
铸造厂 14 53 12 5 2 1
电磁工厂 14 56 16 7 3 1
低温工厂 9 41 16 8 4 1


各机器数据

机器 插件槽位 N 基础产能 p0
化工厂 3 +0%
组装机3型 4 +0%
铸造厂 4 +50%
电磁工厂 5 +50%
低温工厂 8 +0%

升品概率

物品被生产出时,假如已经通过随机数确定了产品会提高品质,那么有 90% 的概率提升一级,有 9% 的概率连升两级,有 0.9% 的概率连升三级,以及剩下的 0.1% 概率会直接升满。当然如果物品刚开始就是比较高的等级的话这些概率也会改变。

数学模型

我们所用的数学模型对时间是离散的。对时间求导太麻烦了,所以我们认为“下一个状态”是关于“上一个状态”的函数。

  • mi,k : k 次迭代后并且没有开始制作物品时,i 级原料的数量(1 表示基础品质,2 表示精良,3 表示稀有,4 表示史诗,5 表示传说)虽然只用了一个变量,但并不是说必须只有一种原料,这个变量表示的是“制作一个物品”所需的一份原料。
  • ni,k : k 次迭代并且已经制作完了物品后,产物的数量。
  • p0 : 机器内置产能。
  • N : 机器插件槽位。
  • qr=4×6.2%=0.248 : 装满品质插件的回收机的升品概率。(6.2% 是传说品质插件 3 的升品概率)
  • pi=p0+xi25% : 装了 xi 个传说产能插件 3后组装机的产能加成。角标 i 表示生产 i 级产品的组装机。
  • qi=(Nxi)6.2% : 装了 (Nxi) 个传说品质插件 3 后的升品概率。角标 i 表示生产 i 级产品的组装机。

回收出的原材料

我们知道回收机会产出四分之一的原材料,并且同样遵从升品概率规则,所以可以计算出回收之后手上的原材料数量。这部分计算非常简单,因为精良产品只有可能来自于升级失败的精良原料。再高一级是精良原料升级成功且刚好升一级的产品,也就是 90% 升级成功的产品,再加上稀有原料升级失败的产品。对每一层都有类似的结论,但是传说物品 n5,k 不会被回收。

基础品质原料:m1,k+1=n1,k4(1qr)精良品质原料:m2,k+1=n1,k4qr0.9+n2,k4(1qr)稀有品质原料:m3,k+1=n1,k4qr0.09+n2,k4qr0.9+n3,k4(1qr)史诗品质原料:m4,k+1=n1,k4qr0.009+n2,k4qr0.09+n3,k4qr0.9+n4,k4(1qr)传说品质原料:m5,k+1=n1,k4qr0.001+n2,k4qr0.01+n3,k4qr0.1+n4,k4qr

也可以写作向量与矩阵的乘法 mk+1=Ank,其中:

[m1,k+1m2,k+1m3,k+1m4,k+1m5,k+1]mk+1=[1qr400000.9qr41qr40000.09qr40.9qr41qr4000.009qr40.09qr40.9qr41qr400.001qr40.01qr40.1qr4qr40]A[n1,kn2,kn3,kn4,kn5,k]nk

我们觉得回收机速度不太重要,所以应该装满品质插件,因此 qr=0.248 是常量,进而矩阵 A 也是常量。对于传说品质插件 3,这个矩阵是:

A=[0.18800000.05580.1880000.005580.05580.188000.0005580.005580.05580.18800.0000620.000620.00620.0620]

重新制造物品

再来一次,我们首先看看生产了多少物品,和之前一样把所有到达该品质的路径加起来就好了,但是这次还要再算入 pi,以及手上已经有的传说产品,也就是 n5,k

基础品质产物:n1,k+1=m1,k+1(1+p1)(1q1)精良品质产物:n2,k+1=m1,k+1(1+p1)q10.9+m2,k+1(1+p2)(1q2)稀有品质产物:n3,k+1=m1,k+1(1+p1)q10.09+m2,k+1(1+p2)q20.9+m3,k+1(1+p3)(1q3)史诗品质产物:n4,k+1=m1,k+1(1+p1)q10.009+m2,k+1(1+p2)q20.09+m3,k+1(1+p3)q30.9+m4,k+1(1+p4)(1q4)传说品质产物:n5,k+1=m1,k+1(1+p1)q10.001+m2,k+1(1+p2)q20.01+m3,k+1(1+p3)q30.1+m4,k+1(1+p4)q4+m5,k+1(1+p5)+n5,k

上述等式同样可以写作向量与矩阵的乘法:nk+1=Bmk+1+Cnk

[n1,k+1n2,k+1n3,k+1n4,k+1n5,k+1]nk+1=[(1+p1)(1q1)0000(1+p1)q10.9(1+p2)(1q2)000(1+p1)q10.09(1+p2)q20.9(1+p3)(1q3)00(1+p1)q10.009(1+p2)q20.09(1+p3)q30.9(1+p4)(1q4)0(1+p1)q10.001(1+p2)q20.01(1+p3)q30.1(1+p4)q4(1+p5)]B[m1,k+1m2,k+1m3,k+1m4,k+1m5,k+1]mk+1+[00000000000000000001]C[n1,kn2,kn3,kn4,kn5,k]nk

结合起来

现在我们可以计算出任意产物在任意次迭代后的数量:

nk+1=Bmk+1+Cnk=BAnk+Cnk=(BA+C)nk=Mnk

nk+2=Mnk+1=MMnk=M2nknk=Mkn0

实践中 n0 只有无品质的物品。如果我们不关心传说以外的产物,我们可以选择足够大的 k,比如 k=100,其数学意义就是最大化传说产物数量。设这个数字为 q100,crit,那么它位于矩阵 M 的 100 次方之中,位置是第五行,第一列。

nk=Mkn0[****n5,100]=[****************q100,crit***][n1,0****]

优化方法(单纯型、分支限界等等)和本文主题无关,但是大部分软件应该都想要问题清晰明了地陈述,从而可以找到最小值,并且保证不会选择 0 以下或者超出机器插件槽位的数字。