辰乐游戏:为玩家推荐真正好玩的手机游戏!

辰乐游戏 > 游戏攻略 > 明日方舟小课堂开课啦 带你了解神秘的方舟概率学

明日方舟小课堂开课啦 带你了解神秘的方舟概率学

作者:佚名 来源:辰乐游戏 时间:2020-04-13 10:53:00

6052edcfaa59c44c3b2b41eaed96c5a5.jpg

本文首发自【明日方舟情报姬】

未经授权不得转载

文|辣椒菌

审核|树峰

排版|逗逗

ef9e0828f1619347f2ef10421aeb3df8.png

首先介绍一下方舟中所使用的随机函数(不完全吻合内部算法,但经过等价简化便于理解):

需要给出一个随机数种子seed输入程序(一个自然数),程序将其带入固定的随机函数组f1(x),f2(x),f3(x),…中,得到一个随机数数列{an},生成后的{an}中各项均为定值,即a1=f1(seed), a2=f2(seed), a3=f3(seed),…

0a51951c7ecf3348cc6a257f496a65e9.jpg

(随机数数列的产生)

考虑到曾经的一则公告中提到浮点数精度的问题:

6d86cd3932bf0b0a1e549f2580801e1b.jpeg

从中可以得知明日方舟所使用的应该是浮点型随机函数,从而可以认为其函数原型f(x)的值域均为[0,1),由于函数组f1(x),f2(x),f3(x),…设计得极为巧妙,故无论seed为何值,{an}中各项之间都看起来非常“随机”(也满足数学上对“随机”的要求),因此只要输入一个新的seed,就能得到一个独一无二的随机数数列,为便于说明简称随机数数列为“随机序列”,并将每一项的下标1,2,3,…称为各项的“序号”。

399a410ab3f5b7f9111bec02279b9562.png

(随机序列与序号的定义)

实际使用中,通常用时间time作为seed,在方舟中,如果考虑到需要兼顾个体差异性(通俗来说,就是为了确保即使你跟你的室友同时开包,出货也完全不同),可能将time结合id作为seed。假设得到的某一个随机数为rnd(“随机”的英文random的缩写),要用它来做一个20%成功率的判定,因为rnd<0.2这一式子成立的概率即为20%,因此如果rnd<0.2,则判定通过;否则,判定失败。

31954d0baee5767aab73e7873e822202.jpg

rnd落入红色区域的概率为20%,因此可以用于做20%成功率的判定

由于随机算法内部结构的要求,在一个程序运行中,同时只会存在一个随机序列,除非重新输入seed生成新的序列将原序列覆盖,否则每次取用随机数都只会不断消耗原序列。

而在明日方舟的战斗中:

1.仅会在对战开始时将seed输入生成随机序列(据猜测seed是由time和id综合得到);

2.每当需要做随机判定时,都从这个序列中取用随机数;

3.保存为代理时会将该局对战的seed一并保存,之后代理开局时将使用原先保存的seed计算序列,接管不影响序列。

60fc496bd444d25fe6af9bb4d8146b1c.jpg

(明日方舟的战斗中生成随机序列的流程)

通过上面的规则可以得知:在一次三星通关以及其对应的多次代理中,必然满足seed相同,因此这些战斗所使用的随机序列完全相同(同一个seed带入一组固定的函数,结果必定相同),从而这些对局中拥有相同序号的随机数rnd完全相等。

为此我们列举了明日方舟中所有可能的随机判定进行测试(也可能有遗漏,欢迎大家指出),包括大量的百分比型判定(如黑暴击、赫拉格闪避、星熊抵挡、芙兰卡穿甲、空被动回复sp等),以及其他的n选一型判定(能天使加buff、华法琳血怒、阿米娅二技能攻击目标选取、小绵羊随机获得sp等)和n选多型判定(霜星掀地板、守林人核弹落点),下面分类进行说明:

所有的百分比型判定(x%)都是判定rnd<x这个式子的成立与否,每次取用序列中的一个随机数,除了以下特殊情况:

1.暴击等攻击特效类判定,判定时机为攻击命中活体,也就是说如果在攻击落到目标前目标已经死于其他攻击,则不进行判定且不取用随机数;

4c94136517118ace4b6d8ed7c97d6ee1.jpg

(拔刀抢先击杀源石虫,从而使这次阿的攻击命中尸体不进行判定)

2.阿的普通攻击存在四种特效,据实际测定,每种特效对应的rnd的范围分别为:暴击[0,0.25);停顿[0.25,0.5);眩晕[0.5,0.75);回血[0.75,1);

3b45d3a04de50273bd63306818625edc.jpg

暴击[0,0.25)

23da32227300608eeb589c8d0bc87c64.jpg

停顿[0.25,0.5)

附件名称.jpg

眩晕[0.5,0.75)

3956efe50c6b3b9bae7899b20c1fa3e3.jpg

回血[0.75,1)

3.干员红携带一技能时具有落地后一段时间的闪避(众做周知此处与技能文本不符,物法皆可闪避),但根据实际测,落地后有短暂的瞬间技能条处于空白状态,此时不具有闪避能力,也不取用随机数;随后技能条瞬间满上再逐建减少,正常触发闪避以及取用随机数;

96b0f658073f7e4190bfd5c0dfe6a18f.jpg

(落地后的瞬间技能条为空)

4.伊桑攻击附带概率禁锢以及雷蛇二技能附带概率眩晕,判定时机为每个攻击目标被击中时,即每次攻击会取用与击中的敌方数量相等数量的随机数,来对每个敌方是否被禁锢分别进行判定;

2bea237f143a6f0f9f410c145fb596a1.jpg

(攻击命中了多少个敌人,就会进行相同数量的判定,取用相同数量的随机数)

5.当通过梅尔一技能、深海色二技能、可颂被动、夜莺三技能给本身具有闪避/抵挡的干员进行闪避套娃时,会根据n重套娃最终取用1~n数量不定的随机数,其原理是会对n重套娃分别取用随机数进行判定,当某重判定成功时则认为闪避成功,不进行后续判定。此外可以推导出闪避总概率

51d643b112c46214b3b983f3cbaa8391.jpg

(闪避套娃)

6.奇迹猛男安赛尔的被动——概率二连击,在测试中第一次攻击会取用两个随机数,第二次攻击会取用极大量随机数(多的时候甚至高达47,以致难以对序列重新进行定位),原因不明,猜测是由于安猛男曾被鹰角动过刀子,额外攻击的超长距离被砍掉了,因此现在的代码有可能是原代码的套娃,存在迭代之类的问题。

23da32227300608eeb589c8d0bc87c64.jpg

(安赛尔曾经的长度av59052001)

所有n选一型判定在无前置条件或满足前置条件条件时,每次均取用一个随机数(若存在前置条件且不满足,则不进行判定不取用随机数),绝大部分判定的规则已探明:

1.能天使的祝福(前置条件:场上已有不少于2名其他干员):

规则为:先按照入场顺序从早到晚为场上其他n个干员编号1,2,3,…,n,取用一个随机数rnd,计算n*rnd+1(即得到[1,n+1)的一个随机数),为结果整数部分(1,2,3,…,n的随机数)对应编号的干员献上祝福(将这种取一个rnd,计算n*rnd+1并取整,得到一个1~n的随机整数的过程,后面简称为取一个n-rnd);

03edb6556e39217a677b63c60d3d87ee.jpg

(入场顺序)

f7fd61cc7251b0c02af0ace2c9cf85b6.jpg

(编号)

2.远山给自己加三选一buff:

规则为:取一个3-rnd:1为加攻速;2为加攻击力;3为加生命值;

c638cf2e778b711ededea3a376ea1616.jpg

(不知道放什么图比较合适,就放个新皮肤吧)

3.华法琳血怒(前置条件:攻击范围内其他干员不少于2人):

规则未明,与入场顺序、站位、干员序号均无明显关系;

516e63b4c994a16b09525337f0facce1.jPG

(规则未明)

4.华法琳充电(前置条件:攻击范围内其他干员不少于2人):

规则为:按照入场顺序从早到晚为攻击范围内的所有n个其他干员编号1,2,3,…,n,取一个n-rnd,为结果对应编号的干员充电,若其sp已满,则不显示“sp+1”/“sp+2”,另外血怒不应用此规则;

998eb018c051564e1d7625af08de18a5.jPG

(入场顺序)

f6cdf138915a8a7daa133de2db84cbb4.jPG

(编号)

5.雷蛇充电(前置条件:上下左右四格内的其他干员不少于两人):

规则为:为雷蛇周围的n个干员按照+上下左右的顺序依次编号1,2,…,n,取一个n-rnd,为结果对应编号的干员充电,若其sp已满,则不显示“sp+1”;

f488e1e6dec3397c0314a918d9b58420.jPG

(编号·四周完整)

fef12e63757331dfb47c746660525046.jPG

(编号·四周有缺)

6.阿米娅二技能随机攻击(前置条件:攻击范围内敌人数量不少于2);

feca233924223cb1b3823009b9db6616.jPG

(规则未明)

7.小绵羊随机获取7~15其中之一sp(三潜时为10~19);

2253887268ecfef63518a2d8758bb596.jPG

(规则未明)

另注:阿的技能选取目标不是随机判定,会优先选取正前方干员(只要正前方有人就绝不会选到两边),然后选取与阿最近的干员,若正前方无干员且左右最近的干员处于相等距离,则选取后入场的干员。

附件名称.jPG

(阿能后入场)

ed2ca8a87cefb0da7a942079f85e0eaa.jPG

(阿能先入场)

所有n选多型判定,即霜星掀地板和守林人核弹落点,均会取用大量随机数(少则4个,多达16个以上),规则未明。

71503af3d44341d969a6e6b5106ffe0b.jPG

(规则未明)

31f8ff54665821945ff38a3927ae2180.jPG

(规则未明)

测试方法说明:

1.对于一个待测判定每次取用多少个随机数的测试,先用阿进行若干次普通攻击,按照1暴击、2停顿、3眩晕、4回血的规则记录特效序列;代理重开,同样记录阿的特效序列,在适当时刻进行一次待测判定并在序列中的对应位置记下一个x(如测试黑的暴击,在阿攻击6下记录6位数字后,置入黑攻击一下记一个x,再立即将黑撤离),然后继续记录阿的的特效序列,与原始序列相对比,观察x占用了几位数字即可。

2.对于n选一类型判定编号顺序规则的测试,分时间顺序(入场从早到晚)、空间顺序(从上到下、从左到右等)、干员内部序号(假设每一个干员拥有一个固有序号1~121,截止春节版本共121个干员)的可能规则分别进行验证:确保判定作用范围内入场的干员总数不变,先随意进行一次待测判定,记录干员人选、每名干员的入场顺序和站位、被选中干员X的入场顺序T和位置L,将此次判定作为对照组。

①代理重开,不改变干员人选和站位,仅打乱入场顺序,然后再次进行判定,若没有选中入场顺序为T的干员,则证明编号不是按照时间顺序;若选中入场顺序为T的干员,再改变干员人选和站位重复多次试验,若均选中入场顺序为T的干员,则证明编号按照时间顺序。

②代理重开,不改变干员人选和入场顺序,仅打乱站位(均站在对照组中有人的位置),然后再次进行判定,若没有选中位置为L的干员,则证明编号不是按照空间顺序;若选中位置为L的干员,再改变干员人选和入场顺序重复多次试验,若均选中位置为L的干员,则证明编号按照空间顺序。

③代理重开,不改变干员人选,完全打乱入场顺序和站位,再次进行判定,若没有选中干员X,则证明编号不是按照干员内置序号;若选中干员X,再重复多次试验,若均选中干员X,则证明编号按照干员内部序号。

应用方向:

1.公共性:可以通过部署其他有随机判定的干员消耗掉无用随机数,从而使得有用随机数集中于某一个干员(需要先测该干员判定的结果序列)身上实现骚操作。该效果无法应用于除了剿灭以外的开荒实战,因为代理(即三星通关)是保存seed的前提;

2.直接迁移性:若用某个rnd多次进行相同类型的判定(同为百分比型或者同为n选一型,其中n选一的n也必须相同),则判定结果必相同。即若用一个rnd做20%成功率的判定成功,代理重开后用这个rnd做另一个20%成功率的判定也必成功;若用一个rnd做5选一判定选中了编号3,代理重开后用这个rnd做另一个5选一判定结果必为3;

3.间接迁移性:由判定结果可以反推出某个rnd的范围:若做x%成功率的判定成功,则rnd∈,失败则rnd属于;若做n选一判定选中了编号i,则rnd∈,当这个范围能满足另一个判定时(即是另一个判定所需范围的子集),可以进行迁移以预知结果。如:进行20%成功率的黑暴击判定成功,则进行更高成功率25%的星熊抵挡判定必成功;4选一选中了3,则用于阿的攻击判定必触发眩晕;n选一选中非1,则用于陈10%的闪避判定必失败。

以上就是本次方舟小课堂的全部内容,希望对各位博士了解方舟概率学问题提供到帮助。那我们下期再见啦!

-------END-------

 

明日方舟 类型:休闲 平台:安卓 状态:运营
  • 精品游戏
  • 最热榜单