矿物利用等级与采矿消耗
阅读
2024-11-02更新
最新编辑:晨隐_
阅读:
更新日期:2024-11-02
最新编辑:晨隐_
采矿消耗的机制
矿机每开采出一个矿,都会概率性的消耗对应的矿的储量。矿被消耗的概率与矿物利用科技等级的关系如下:
[math]\displaystyle{ p=0.94^{level} }[/math]
采矿消耗概率计算中的伪随机数生成器
在采矿消耗概率计算中,并不会使用真正的随机数,而是使用线性同余法生成的伪随机数,游戏中的具体实现如下:
// C# x = (uint)((int)((ulong)((long)(x % 2147483646u + 1) * 48271L) % 2147483647uL) - 1);
这个线性同余伪随机数生成器的周期是2147483646,定义域和值域都是{x | 0 <= x < 2147483646, x∈Z}。换而言之,在一个长度略小于2^32的周期内,每个整数会且仅会被输出一次。但是在更大的尺度上,你会发现它开始重复之前已经输出过的内容。
线性同余伪随机数生成器只能直接生成整数,不能直接生成小数。因此游戏将伪随机数从整形转换为浮点型后,除以2147483646.0,得到一个在[0,1)范围内的小数,这就是游戏中的“每次采矿消耗的矿物”。
采矿消耗相关推论
同时受到伪随机数生成器与32位浮点数精度的影响,实际采矿消耗与理论采矿消耗有非常小的误差。这几乎不可能对玩法造成影响,但是确实打消了玩家对“虚空采矿”的幻想。
- 采矿消耗近似于随机过程,随着矿物利用科技等级的提高,矿被消耗的概率指数下降。
- 矿物利用科技等级达到272时,面板数值显示为零,但是这是因为实际采矿消耗超出了面板能显示的范围,不是真的降低到零了。
- 矿物利用科技等级达到348时,实际采矿消耗降低到1/2147483646。这已经是理论最低值,更高等级的矿物利用科技也不能进一步降低实际采矿消耗,此时每挖2147483646个矿固定消耗1个矿。后续的升级将仅作用于提升采矿速度。