明日方舟小课堂开课啦 带你了解神秘的方舟概率学
作者:佚名 来源:辰乐游戏 时间:2020-04-13 10:53:00
本文首发自【明日方舟情报姬】
未经授权不得转载
文|辣椒菌
审核|树峰
排版|逗逗
首先介绍一下方舟中所使用的随机函数(不完全吻合内部算法,但经过等价简化便于理解):
需要给出一个随机数种子seed输入程序(一个自然数),程序将其带入固定的随机函数组f1(x),f2(x),f3(x),…中,得到一个随机数数列{an},生成后的{an}中各项均为定值,即a1=f1(seed), a2=f2(seed), a3=f3(seed),…
(随机数数列的产生)
考虑到曾经的一则公告中提到浮点数精度的问题:
从中可以得知明日方舟所使用的应该是浮点型随机函数,从而可以认为其函数原型f(x)的值域均为[0,1),由于函数组f1(x),f2(x),f3(x),…设计得极为巧妙,故无论seed为何值,{an}中各项之间都看起来非常“随机”(也满足数学上对“随机”的要求),因此只要输入一个新的seed,就能得到一个独一无二的随机数数列,为便于说明简称随机数数列为“随机序列”,并将每一项的下标1,2,3,…称为各项的“序号”。
(随机序列与序号的定义)
实际使用中,通常用时间time作为seed,在方舟中,如果考虑到需要兼顾个体差异性(通俗来说,就是为了确保即使你跟你的室友同时开包,出货也完全不同),可能将time结合id作为seed。假设得到的某一个随机数为rnd(“随机”的英文random的缩写),要用它来做一个20%成功率的判定,因为rnd<0.2这一式子成立的概率即为20%,因此如果rnd<0.2,则判定通过;否则,判定失败。
rnd落入红色区域的概率为20%,因此可以用于做20%成功率的判定
由于随机算法内部结构的要求,在一个程序运行中,同时只会存在一个随机序列,除非重新输入seed生成新的序列将原序列覆盖,否则每次取用随机数都只会不断消耗原序列。
而在明日方舟的战斗中:
1.仅会在对战开始时将seed输入生成随机序列(据猜测seed是由time和id综合得到);
2.每当需要做随机判定时,都从这个序列中取用随机数;
3.保存为代理时会将该局对战的seed一并保存,之后代理开局时将使用原先保存的seed计算序列,接管不影响序列。
(明日方舟的战斗中生成随机序列的流程)
通过上面的规则可以得知:在一次三星通关以及其对应的多次代理中,必然满足seed相同,因此这些战斗所使用的随机序列完全相同(同一个seed带入一组固定的函数,结果必定相同),从而这些对局中拥有相同序号的随机数rnd完全相等。
为此我们列举了明日方舟中所有可能的随机判定进行测试(也可能有遗漏,欢迎大家指出),包括大量的百分比型判定(如黑暴击、赫拉格闪避、星熊抵挡、芙兰卡穿甲、空被动回复sp等),以及其他的n选一型判定(能天使加buff、华法琳血怒、阿米娅二技能攻击目标选取、小绵羊随机获得sp等)和n选多型判定(霜星掀地板、守林人核弹落点),下面分类进行说明:
所有的百分比型判定(x%)都是判定rnd<x这个式子的成立与否,每次取用序列中的一个随机数,除了以下特殊情况:
1.暴击等攻击特效类判定,判定时机为攻击命中活体,也就是说如果在攻击落到目标前目标已经死于其他攻击,则不进行判定且不取用随机数;
(拔刀抢先击杀源石虫,从而使这次阿的攻击命中尸体不进行判定)
2.阿的普通攻击存在四种特效,据实际测定,每种特效对应的rnd的范围分别为:暴击[0,0.25);停顿[0.25,0.5);眩晕[0.5,0.75);回血[0.75,1);
暴击[0,0.25)
停顿[0.25,0.5)
眩晕[0.5,0.75)
回血[0.75,1)
3.干员红携带一技能时具有落地后一段时间的闪避(众做周知此处与技能文本不符,物法皆可闪避),但根据实际测,落地后有短暂的瞬间技能条处于空白状态,此时不具有闪避能力,也不取用随机数;随后技能条瞬间满上再逐建减少,正常触发闪避以及取用随机数;
(落地后的瞬间技能条为空)
4.伊桑攻击附带概率禁锢以及雷蛇二技能附带概率眩晕,判定时机为每个攻击目标被击中时,即每次攻击会取用与击中的敌方数量相等数量的随机数,来对每个敌方是否被禁锢分别进行判定;
(攻击命中了多少个敌人,就会进行相同数量的判定,取用相同数量的随机数)
5.当通过梅尔一技能、深海色二技能、可颂被动、夜莺三技能给本身具有闪避/抵挡的干员进行闪避套娃时,会根据n重套娃最终取用1~n数量不定的随机数,其原理是会对n重套娃分别取用随机数进行判定,当某重判定成功时则认为闪避成功,不进行后续判定。此外可以推导出闪避总概率
(闪避套娃)
6.奇迹猛男安赛尔的被动——概率二连击,在测试中第一次攻击会取用两个随机数,第二次攻击会取用极大量随机数(多的时候甚至高达47,以致难以对序列重新进行定位),原因不明,猜测是由于安猛男曾被鹰角动过刀子,额外攻击的超长距离被砍掉了,因此现在的代码有可能是原代码的套娃,存在迭代之类的问题。
(安赛尔曾经的长度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);
(入场顺序)
(编号)
2.远山给自己加三选一buff:
规则为:取一个3-rnd:1为加攻速;2为加攻击力;3为加生命值;
(不知道放什么图比较合适,就放个新皮肤吧)
3.华法琳血怒(前置条件:攻击范围内其他干员不少于2人):
规则未明,与入场顺序、站位、干员序号均无明显关系;
(规则未明)
4.华法琳充电(前置条件:攻击范围内其他干员不少于2人):
规则为:按照入场顺序从早到晚为攻击范围内的所有n个其他干员编号1,2,3,…,n,取一个n-rnd,为结果对应编号的干员充电,若其sp已满,则不显示“sp+1”/“sp+2”,另外血怒不应用此规则;
(入场顺序)
(编号)
5.雷蛇充电(前置条件:上下左右四格内的其他干员不少于两人):
规则为:为雷蛇周围的n个干员按照+上下左右的顺序依次编号1,2,…,n,取一个n-rnd,为结果对应编号的干员充电,若其sp已满,则不显示“sp+1”;
(编号·四周完整)
(编号·四周有缺)
6.阿米娅二技能随机攻击(前置条件:攻击范围内敌人数量不少于2);
(规则未明)
7.小绵羊随机获取7~15其中之一sp(三潜时为10~19);
(规则未明)
另注:阿的技能选取目标不是随机判定,会优先选取正前方干员(只要正前方有人就绝不会选到两边),然后选取与阿最近的干员,若正前方无干员且左右最近的干员处于相等距离,则选取后入场的干员。
(阿能后入场)
(阿能先入场)
所有n选多型判定,即霜星掀地板和守林人核弹落点,均会取用大量随机数(少则4个,多达16个以上),规则未明。
(规则未明)
(规则未明)
测试方法说明:
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-------
明日方舟 类型:休闲 平台:安卓 状态:运营
相关阅读
热门文章
- 精品游戏
- 最热榜单
- 星云纪手游下载_星云纪手游下载ios版下载_星云纪手游下载app下载 2.0
- 猎国下载app下载_猎国下载ios版 2.0
- 战火纷争手游下载_战火纷争手游下载破解版下载_战火纷争手游下载小游戏 2.0
- 修真情缘变态版下载_修真情缘变态版下载安卓手机版免费下载_修真情缘变态版下载app下载 2.0
- 我的世界手机版下载免费_我的世界手机版下载免费安卓版下载_我的世界手机版下载免费ios版下载 2.0
- 部族之光手游下载iOS游戏下载_部族之光手游下载中文版下载 2.0
- 趣键盘极速版下载_趣键盘极速版下载app下载_趣键盘极速版下载下载 2.0
- 幻世轩辕手游下载_幻世轩辕手游下载小游戏_幻世轩辕手游下载中文版下载 2.0
- 九州缥缈录手游下载官网下载手机版_九州缥缈录手游下载官网下载手机版 2.0
- G位app下载_G位app下载电脑版下载_G位app下载安卓版下载 2.0
- 龙脉OL手游下载_龙脉OL手游下载下载_龙脉OL手游下载ios版下载 2.0
- 问道小米版手游下载_问道小米版手游下载下载_问道小米版手游下载ios版下载 2.0
- 蜀山战神手游下载_蜀山战神手游下载手机游戏下载_蜀山战神手游下载官方正版 2.0
- 释放情绪下载_释放情绪下载电脑版下载_释放情绪下载app下载 2.0
- 扬琴调音器软件下载_扬琴调音器软件下载中文版_扬琴调音器软件下载中文版 2.0
- 他圈app下载_他圈app下载中文版_他圈app下载最新版下载 2.0
- 古琴调音器app免费下载_古琴调音器app免费下载攻略_古琴调音器app免费下载app下载 2.0
- 猫咪冲锋队下载_猫咪冲锋队下载下载_猫咪冲锋队下载ios版下载 2.0
- 人人漫画家app下载_人人漫画家app下载中文版_人人漫画家app下载攻略 2.0
- 印象app下载_印象app下载积分版_印象app下载最新版下载 2.0