原神:圣遗物掉落模拟器-究极简陋版

原标题:原神:圣遗物掉落模拟器-究极简陋版

作者:NGA-破碎的心

今天下午没啥事,恰巧想起来之前的一个帖子,想了想不如花点时间写个极简版掉落模拟器。

完全不会前端,如果你愿意基于这段code,增加可视化或者更多的功能,随意随意。

dependency应该只有numpy,其他应该py3就够了。code应该也足够简单,只有比较简单的注释,有什么问题或者bug欢迎反馈。

目前主要有两个功能:

1. 模拟45级圣遗物本的掉落(只关注金圣遗物)。

2. 对于圣遗物的属性进行排序(根据用户提供的权重)。

例子 (实时更新一些常见问题的计算结果,也欢迎大家提问题,我来帮着算一算。):

如果我用一年的自回体刷一个本,需求的属性是 :暴击=爆伤=元素伤害>攻击力%>攻击力,我能拿到什么样的圣遗物?

一次模拟,每个位置的前三的圣遗物:

Got 360 生之花.

生之花:

生命值 :  4780.0

防御力 :  40.0

暴击率% :  10.5

暴击伤害% :  12.4

防御力% :  11.7

生之花:

生命值 :  4780.0

元素充能% :  4.5

生命值% :  9.9

暴击率% :  10.1

暴击伤害% :  12.4

生之花:

生命值 :  4780.0

元素充能% :  17.5

攻击力% :  10.0

暴击率% :  7.0

暴击伤害% :  14.0

Got 370 死之羽.

死之羽:

攻击力 :  322.0

生命值% :  5.8

暴击率% :  10.1

暴击伤害% :  18.7

元素精通 :  16.0

死之羽:

攻击力 :  322.0

防御力 :  23.0

生命值 :  299.0

暴击率% :  10.1

暴击伤害% :  17.8

死之羽:

攻击力 :  322.0

防御力 :  19.0

暴击率% :  6.2

暴击伤害% :  24.8

防御力% :  14.6

Got 349 时之沙.

时之沙:

攻击力% :  46.6

元素充能% :  9.0

生命值 :  777.0

暴击率% :  10.9

暴击伤害% :  7.9

时之沙:

攻击力% :  46.6

元素充能% :  5.8

防御力 :  23.0

攻击力 :  34.0

暴击率% :  13.2

时之沙:

攻击力% :  46.6

攻击力 :  36.0

暴击率% :  6.6

防御力% :  13.9

暴击伤害% :  12.4

Got 383 空之杯.

空之杯:

元素伤害% :  46.6

攻击力% :  9.4

暴击率% :  12.8

暴击伤害% :  5.4

元素精通 :  32.0

空之杯:

元素伤害% :  46.6

防御力 :  19.0

生命值% :  8.2

生命值 :  239.0

暴击率% :  16.7

空之杯:

元素伤害% :  46.6

防御力 :  19.0

攻击力 :  51.0

生命值% :  4.7

暴击伤害% :  19.4

Got 359 理之冠.

理之冠:

暴击率% :  31.1

防御力 :  23.0

攻击力% :  5.3

生命值% :  8.8

暴击伤害% :  24.8

理之冠:

暴击伤害% :  62.2

生命值% :  5.8

生命值 :  717.0

攻击力% :  5.3

暴击率% :  12.0

理之冠:

暴击率% :  31.1

防御力 :  23.0

生命值 :  508.0

攻击力% :  9.4

暴击伤害% :  21.2

我想刷一个好的暴击头,要刷多少次?

暴击头 …暂时定义好的暴击头为对应爆伤>20% (差不多需要副属性加强2,3次)

那么需要的刷本次数是:

10-percentile ( 欧皇): 187

50-percentile (正常人): 1134

90-percentile (非酋): 3145

注意一天的自回体只能刷9次。。所以有10%的非酋一年左右才能刷到;正在给甘雨刷装备的我瑟瑟发抖;还好实际上我们可以4+1,所以实际情况不会这么惨。

我想刷一个好的攻击沙漏,要刷多少次?

攻击沙漏 …暂时定义好的攻击沙漏为对应暴击爆伤副属性总共加强2,3次

10-percentile (欧皇): 70

50-percentile (正常人): 524

90-percentile (非酋): 1703

看起来比暴击头简单很多。

我想刷一个好的双暴元素杯,要刷多少次?

双暴元素杯 …暂时定义”好“为对应暴击爆伤副属性总共加强2,3次

10-percentile (欧皇): 337

50-percentile (正常人): 2263

90-percentile (非酋): 8486

可见这不是一般人能刷出来的。。如果不限制圣遗物系列的话这个数字大概能除以2,也算是留个念想吧;

我想刷一个好的双暴 头/羽毛,要刷多少次?

双暴 头/羽毛 …暂时定义”好“为对应暴击爆伤副属性总共加强2,3次

10-percentile (欧皇): 14

50-percentile (正常人): 118

90-percentile (非酋): 396

可见这边才是一般难度;

圣遗物的掉落目前还是有一些不确定的地方,下面是我的实现中可能有错的地方:

1. 45级圣遗物本可以掉1或2个金色圣遗物,但是不知道各自概率(瞎猜是10%掉2个,见default_num_lvl5_pdf);

2. 金色圣遗物可以有3或4个初始副属性,但是不知道具体概率(瞎猜20%有4个,见default_p_substat_cnt_3);

3. 参考文献1里的数据量不够,标准差差不多2%,而且副属性很多都只是marginal distribution,所以我做了如下近似:

a. 主属性分布直接用参考文献1的经验数据;

b. 副属性用整体的边缘分布(就近取整)来确定他们之间的比例;目测不正确(尤其是HP,ATK,DEF)但是错的不多;

4. 假设副本均匀掉落两种圣遗物和5个位置(p_correct_set, default_artifact_type_pdf);

一些明显的缺点/缺失,可能会根据我的时间选着改/加:

1. 圣遗物明显是4+1或者2+2+1,所以目前的API需要进一步的wrap,要不然不好用;

2. 没加monte carlo + 圣遗物属性的汇总;要想回答“想刷到XXX水平需要刷多少次”这类问题需要这类功能,不过很容易加;

3. 圣遗物之间的比较现在比较粗暴,理论上应该对于整个5件套,对于每个目标属性设定最小值,并且把边际递减考虑进去。

责任编辑:

Thenews.cc