缺氧DLC1甜素甲虫变异机制数据详解

缺氧的DLC中新增了生物甜素甲虫,这种生物本身存在着变异的机制,但变异的几率许多玩家不是很了解。那么它有多大概率产生变异呢?今天小编为大家带来了由“234xdd”分享的缺氧DLC1甜素甲虫变异机制数据详解,希望对大家有所帮助。

简化版总结

太长不看版,甜素甲虫产虫果果虫卵的概率为随照料虫果类植物的次数增加而增加,直至趋近于100%,而甜素甲虫每周期可以照料7棵左右的作物。

因此,大约可以在全效照

料4周期以后达到50%,7周期后达到70%,10周期后达到80%。如适用虫果果虫产卵,猜测除初始值变更为33%以外变异机制与甜素甲虫一致。

理论计算公式在概率不足98%时为a_n = 1 - (1 - a_0)*(1 + x)^(-n),超过98%时增长会更慢。其中n表示照料虫果类植物的次数,a表示产下果虫卵的概率,a_0表示初始概率2%。x表示变异率2.5%。

代码分析

首先找到甜素甲虫的文件 DivergentBeetleConfig。

找到 EntityTemplates.ExtendEntityToFertileCreature()(这一行定义了动物的生殖行为,所以海牛和章鱼应该时没这一行的)。

找到其中定义产卵概率的参数 DivergentTuning.EGG_CHANCES_BEETLE,所以我们转战 DivergentTuning 文件。

其实到这里乍一看就无计可施了,因为 EGG_CHANCES_BEETLE 只定义了 0.02 和 0.98 两个数字,对应甜素甲虫初始状态下产出两种卵的概率。

好在仔细一看,这个文件中还有一个似乎和产卵概率相关的变量有定义 TIMES_TENDED_PER_CYCLE_FOR_EVOLUTION 为 2,直译为“进化所需的每周期照料次数”。

搜索 TIMES_TENDED_PER_CYCLE_FOR_EVOLUTION 在代码文件中的引用,发现在 TUNING.CREATURES.EGG_CHANCE_MODIFIERS 文件中的 CropTendedModifier 有用到。 CropTendedModifier 的第一个参数为虫果果虫id,第二个为虫果果虫卵id,第三个为两种能提供变异的植物((贫瘠)虫果植株),第四个参数即是0.05除以TIMES_TENDED_PER_CYCLE_FOR_EVOLUTION (得0.025)。那么我门接下来分析 CropTendedModifier 的逻辑。

可以看到,在 FertilityModifier 的最后一个变量 applyFunction 中,回调的输入被转换为 CropTendingStates.CropTendingEventData 植物照料事件数据,它其中便有被照料的植物id -- corpID。代码逻辑为,如果被照料的植物是之前定义的几种植物((贫瘠)虫果植株)中的一种,那就调用 inst.AddBreedingChance(eggType, modifierPerEvent) 函数调整变异概率,其中eggType是回调函数的输入值,盲猜是虫果果虫卵的id,modifierPerEvent 正式之前算出的第四个参数 0.025。

现在来看 AddBreedingChance,简化的代码为 chance.weight += Min(1 - chance.weight, Max(0f - chance.weight, 0.025)),套用到虫果果虫的例子中用人话说就是,虫果果虫卵当前的权重加上0.025,再把它限制到0到1的范围之内。注意后面还有一行NormalizeBreedingChances(),作用就是等比缩放所有的蛋的概率使得它们的和为1。

公式推导

本段涉及到最多到高中的数学知识

符号定义:

a 产出虫果果虫卵的概率,用0到1之间的小数表示。

x 每次照料增加的概率系数,为0.025

n 照料虫果系植株的次数,为自然数。

这样,a_0就是初始状态下甜素甲虫产下虫果果虫卵的概率0.02(2%),a_n就是照料过n次虫果系植株以后的甜素甲虫产下虫果果虫卵的概率。

根据代码中的逻辑,现在可以得到虫果果虫卵概率的递推公式:

当a_{n-1} 小于等于 0.975时,a_n = (a_{n-1} + x) / ((a_{n-1} + x) + (1 - a_{n-1})) = (a_{n-1} + x) / (1 + x)

当a_{n-1} 大于 0.975 时,a_n = 1 / (1 + (1 - a_{n-1} )) = 1 / (2 - a_{n-1})

根据高中的通过递推公式求通项公式的知识(我自己忘得差不多了所以去某乎复习了一下),易得(等式两边同时减 1 即为等比数列)

当a_{n-1} 小于等于 0.975时,a_n = 1 - (1 - a_0) * (1 + x)^(-n)

根据(excel)计算,n 最大为 149 (即第一个超过 0.975 的 a_n 对应的 n)

那么当 n 大于 149 时,通项公式为(等式两边同时减 1 再取倒数即为等差数列)

a_n = 1 + 1/(1/(a_{149}-1) - n + 149)

结论验证

数据

其中"观察值"为(1 - "原始观察值"/100)。"理论值近似"为"理论值"四舍五入后的百分率表示方法。

图表

可以看到观察值与理论值分毫不差。

结论验证

数据

其中"理论值近似"为"理论值"四舍五入后的百分率表示方法。

图表

可以看到理论值和实际值有一定误差。推测误差有两方面,一是也许每周期照料作物棵数不是恰好为7,二是单精度浮点数计算上的误差。

总结

目前看来论证公式能很好得解释游戏中的现象。根据相似的代码查找方法,可以推测如果用虫果果虫产卵,除初始值变更为33%以外变异机制与甜素甲虫一致。对于别的小动物的变异机制,理论上应该也能通过分析TUNING.CREATURES.EGG_CHANCE_MODIFIERS 文件来得到确切的逻辑。

也许你还喜欢

人气较高的咖啡店游戏大全 2026年

咖啡店模拟类游戏正成为都市人群释放压力的热门选择,操作简单、

饥困荒野年兽攻略 饥困荒野年兽获

《饥困荒野》鹤唳春归赛季限时开放,其中最具代表性的限定坐骑——年

重访欧洲古堡 《猎魂觉醒》携手世

“建筑是凝固的历史”,在一座巍峨的城堡中,凝固着怎样的骑士荣光?网易超真实团

奏起太空探索的乐章《无尽的拉格朗

近日,网易旗下知名SLG手游《无尽的拉格朗日》凭借星灯节中儿童合唱音乐——《

遗忘之海好运湾位置在哪 遗忘之海

厌倦了千篇一律的航海体验?《遗忘之海》为你打开一扇通往奇幻深蓝的

英雄请出战阵容推荐 2026热门强势

许多《英雄请出战》玩家在推进主线关卡或参与竞技场对战时,常遇

为篮球信仰相聚!来自《全明星街球派

巨星云集,潮斗街头!网易首款篮球全明星街头竞技手游《全明星街球派对》,国内首

《阴阳师》觅四时活动开启 全新结

春夏秋冬交叠更替,朝夕日夜循环往复,四季周而复始,生生不息。当季节的景象化作

楚新钓手游上线时间 楚新钓手游公

《楚新钓》是一款将传统武侠文化与休闲钓鱼玩法深度结合的创新型手游

遗迹第一守护者下载慢怎么办 遗迹

《遗迹第一守护者》作为一款高品质类魂动作游戏,自上线以来广受