【FGO竞速】FGO竞速科普之概率篇——那些年,被概率支配的恐惧

说到概率,大家都会想到什么东西呢?抛硬币?骰子?扑克?麻将?反正最近我正好看到了天麻里卷饼东一一本场天和(小林立你居然敢这么画?),甚至想重新下载雀魂体验神棍感觉,然后八巡四暗刻听牌立直后……变成立直对对三暗刻nomi,一时无话可说。
话说回来,FGO本质是个很冰冷又充满温度的概率游戏,原谅我说得这么拗口,但是大家总试过某个时间段内抽卡无论如何都出不了五星了吧?或者说歪震到心态爆炸都没见到自己想要的从者了吧?又或者说福袋看着术阶福袋1/5概率复明甚至可能双黄但结果仅仅跳出一个彩圈金术翻身1001的大起大落吧?如果你都遇到过上述问题,我会推荐你……嗯……好好洗洗睡觉,或许明天会更好。

对于竞速来说,估计很多人回想:为什么我两管体力下去都没能成功呢?别急,这涉及到了很多的概率问题。

目录
概率、随机数和期望尝试次数
技能成功率
敌方行动
即死
发牌
分星和暴击
伤害随机
结语
附录

概率、随机数和期望尝试次数
概率是度量偶然事件发生可能性的数值。假如经过X次重复试验,偶然事件出现了Y次。以X作分母,Y作分子,形成了数值F=Y/X,我们把F称为频率。而在多次试验中,F相对稳定在某一数值上,此时令P=F,P就可以称为A出现的概率。这种偶然事件的概率是通过长期观察或大量重复试验来确定,称为统计概率或经验概率。

在FGO之中,基本在每一个一连串行动的判定都会存在一个随机数列进行决定,这个随机数列是伪随机的,但基本能保证概率均匀分步。而决定这个随机数列的就是在战斗前发出的一个种子,可以确定只要初始种子相同,则随机数序列相同。每次战斗开始时,这场战斗的种子就确定了,这张战斗中所有的可能性可以说已经定死了。FGO中对随机数的使用分布在每一个操作里:敌人攻击目标判定、伤害判定、暴击判定、出星判定、使用技能等等。(PS:对于种子能否改变发牌暂且没有任何实践证明)所以SL的实质就是改变每个操作分配到的随机数。
(至于什么事均匀分布啊伪随机数啊什么的建议自己学习概率论,下文还会聊到正态分布)
至于期望尝试次数,则是当你确定了一个偶然事件的概率之后,你大概需要重复多少次实验才能遇到一次这个偶然事件,这个次数为1/P,但并不是等于说我重复1/P次实验一定会出现一个。比如说抛一个D100的骰子(百面骰子,投掷的结果为1~100中随机一个整数),记出现骰子结果为1作为事件A,显然出现A的概率为P(A)=0.01。那么我们尝试投掷100次的骰子,这100次的重复试验里很有可能发生事件A。但这不是必然的,这点我们可以用二项分布来进行计算:至少100次投掷出现一次A的概率是:
P(100次试验中至少出现一次A)=1-(1-P(A))^100=0.634
可以看到,纵然是成功率开始仅有1%,但在百次重复试验的总样本中,出现一次成功的概率能提高到63.4%。所以啊,天才就是重复次数最多的人,人类的本质就是复读机,坚持就是胜利……讲那么多感觉没什么用,至于能不能坚持,我只能给出一句话:
生活就像海洋,只有意志坚定的人才能到达彼岸。

技能成功率

我们先来讲一下技能的成功率。这个技能是广义的,包含宝具和平A的附加效果。
首先我们基本会遇到几种情况,不妨我们假定一个情况吧,就当贞德单挑天之公牛本,这时候:贞德对弓凛使用了真名看破[LV.10],DEBUFF并没有出现,而是出现了GUARD的字符;贞德对弓凛使用了神明裁决[LV.1],DEBUFF并没有出现,而是出现了MISS的字符;还是那个贞德,对天之公牛使用了神明裁决[LV.10],DEBUFF并没有出现,而是出现了NO EFFECT的字符。
没错,这就代表了三种情况:被施加技能的人抵抗了技能效果、技能者未能成功触发技能、技能使用对象无法被该技能影响(一般原因为强化/弱化无效或者不满足使用对象)。
实际上,除了NO EFFECT以外,技能还是有成功的可能,GUARD和MISS本质相同。我们先记住一个公式:技能成功率=技能固有概率±技能成功率BUFF∓目标耐性BUFF。如果成功率达到100%或以上则是必定成功,成功率在0%或以下则是必定失败。
技能有一个固有概率,比如说孔老师宝具[OC100]下的眩晕成功率为50%,贞德神明裁决[LV.10]是120%,而斯卡哈宝具/战斗服Gandr的眩晕成功率为500%。
技能成功率BUFF则包含弱体和强化成功率BUFF,有道具做成、精神污染、魔杖支配者或者太阳神的加护等等(顺便敌方也有降低我方强化成功率的DEBUFF,比如全力斗技的杰克和我们心心念念的巴巴托斯好姐妹佛钮司)。

耐性BUFF或DEBUFF主要指对魔力和仇阶被动,也有一些能够提升自身弱耐的技能。
总而言之,把这一堆加起来之后,我们就得到了一个技能成功率了。但是这个技能成功率只是一个概率——也就是说,谁能知道这一次会不会发生呢?竞速玩家可以把技能会有成功概率的情况分为三类:冠位对魔力以及概率性BUFF。这不是只有两类吗?
对收益性DEBUFF的对魔力:收益性DEBUFF包含降防、降色卡耐性等,这类DEBUFF要求必须命中的情况下,就需要和对面的对魔力疯狂周旋。
对减益性DEBUFF的对魔力:减益性DEBUFF一般指降低输出/行动不能/封印类DEBUFF,包含我方给予敌方或是敌方给予我方,这类DEBUFF应对方法有多个,我方还有解除的方法,但是对于敌方,基本只有一件事……期待别中,然后看着从天而降的八根柱子把别人砸晕了。如果是我方赋予敌方的情况,请切记:不要把贤王和孔明摆一起!!!!(PS:降攻降爆降宝威之类特定时候是收益性DEBUFF)
概率性BUFF的MISS:概率性BUFF持有人很少,有魔境的智慧(智力-1-1-1)、天赋的睿智(双关)、伟大之魂(无比渺小)、魔性之貌(概率确实很魔性)、皇帝特权(乞丐版)、奇怪的药(迫真)和某理性丧失(无法挽救)。当然也包含敌方降低了我方强化成功率的情况。这种时候,请注意手速,SL就完事了。
针对技能成功概率的情况,其实不应该单独讲这么多,因为可以SL的次数太多了。比如你在首回合开一个累计成功率只有50%的技能,技能没有成功,你SL之后再来一次,依旧没有成功……当尝试次数不断增加,这个至少成功一次的概率会逐渐接近1。所以在有大量技能的时候,SL技能使得命中是很简单的,就是考验手速。
不过,到目前为止,还没有一个高难的敌人被动对魔力高到50%以上的(王哈的信仰加护是主动技能),目前一般认为敌方对魔力不高于50%。为什么这么说呢?因为对面对魔力高于50%为什么不直接弱体无效了呢?

敌方行动
敌方,也就是AI,它们的行动、伤害、是否暴击都是随机的,但是它们的行动准则都是可以靠解包出来的。这些解包数据可以从我们atkwiki上找到敌人的相应数据,每个boss的行动优先度不一(比如那个对着术阶暴打的黑呆),但我们还是可以找到一些共同点的,这些共同点主要是行动次数和基础暴击概率。

通常情况下,敌方单体的行动是有次数的,术狂行动次数只有2,其余都为3,例如情人节三期的豆爸,尼禄祭二期的B叔。不排除特殊情况。
基础暴击率,我方应对的敌人大部分为类型1,类型1的敌人基础暴击率如下(不排除特殊情况):
剑枪术狂尺仇丑兽10%<骑癌15%<弓20%<杀30%
为什么杀阶在对面这么难受的道理应该明白了吧?暴击率高、气槽短、掉星少还回NP少,能克制杀阶的除了狂丑以外只有吃0.9系数的术阶,实在是最理想的BOSS职阶。
当然,如果当对敌方行动了如指掌之后,我们完全可以进行极限的操作,比如暗暗十分的王哈单挑情人节二期车轮[AV21492335]。

即死
本来这个部分我打算最后才讲的,但是想了一下下面的篇幅,还是算了,直接这里讲吧。
即死成功率公式:即死成功率=即死效果率*固有即死率*(1±即死成功率BUFF∓即死耐性BUFF)
即死效果率为技能或宝具发动即死效果的概率;固有即死率便是即死对象的基础数值,我方从者的即死率由职阶、魔力决定,敌方影从者的即死率为10%,敌方从者的即死率为0~0.2%。
公式有一种不适用的情况,那就是如果即死的触发者与即死的作用者为同一人(自身即死效果从者列表),则强制即死(即使存在即死无效、即死耐性提升的BUFF),比如我们的劳模大英雄,还有百杀夜行的延时自杀。


发牌
别人总是说发牌姬的宠爱,发牌姬搞我,立直一发上铳……好像混入了一些什么奇怪的东西,不过没关系,只要是有牌堆的游戏,本质都是一样的,都是概率问题。
FGO的发牌机制我在上一篇科普文讲过了,场上三人的情况下,首轮15张牌随机抽出5张,次轮10张抽5同时决定第三轮的发牌。这个首回合指发牌首回合,并不等价T1。
然后我们要认识一个非常好的东西,叫组合数和排列数,这两个是数学里的一个计算符号,不做什么具体的介绍了。由于B站的输入法问题,我就直接用nCr来表示从n个数据里抽出r个数据进行组合的结果了。以下是一些常用的计算过程(由于本人数学没到家,下面能给出的都是单纯首回合的计算)
我们首回合的发牌一共有15C5=3003种,其中我们:
指定抽出某一张牌的概率是14C4*1/15C5=0.3333
指定抽出某两张牌的概率是13C3*2C2/15C5=0.0952
指定抽出某三张牌的概率是12C2*3C3/15C5=0.0220
至少打手一张牌的概率是:1-10C5/15C5=0.9161
至少打手两张牌的概率是:1-10C5/15C5-10C4*5C1/15C5=0.5664
至少打手三张牌的概率是:1-10C5/15C5-10C4*5C1/15C5-10C3*5C2/15C5=0.1668
打手全五张牌一次性发出:5C5/15C5=0.000333
可以看到,我们随着发牌要求的提高,难度也随之提高。
一个打手的指令卡卡组有6种:BBBAQ、BAAAQ、BAQQQ、BBAAQ、BBAQQ、BAAQQ。可以分为两类:221型和311型,两种类型的发牌概率完全不同,以一轮3回合发牌的总排列来计算,221型有108种发牌,而311型只有90种。
我们以BBAAQ和BAAAQ为例,计算具体的首回合至少发出这种牌型的发牌概率为:

至于为什么举这两种的例子我就不说了。(不就是因为西托奈BBAAQ,伊莉雅BAAAQ吗)
涉及多轮共享发牌时,可参考竞速先辈百川所制作的单角色发牌概率表:








双角色发牌与多角色发牌的分布在一定情况下有其意义,但具体说明极其复杂,在本文中也不会说明。
而当我们把竞速中所要求的发牌概率乘起来之后,就是我们的发牌总概率了,比如我们牌组为BAAAQ的伊莉雅小可爱要表演一个宝具三连发,要求起手AA,T2洗牌后来一个BA,T3我们把buff拉满使得可以无视发牌,那么这个剧本的发牌成功概率就是:5.40%,是一个比较轻松的概率。
每当说到发牌,我总能想起那个黑狗7T大菩萨。三轮啊!三轮啊!三轮BBB是什么鬼概念?再加上T3的发牌的3Q限制,那可是0.02198^4=2.334*10^-7,这个概率的概念是什么呢……大概是飞机失事概率的两倍。嗯,飞机失事的概率其实是很低的,不过比起大乐透中奖还是高两个数量级。
转一下题外话,大家应该知道日麻役满出现率很低吧?根据统计数字,四暗刻概率0.049%,国士无双0.043%,大三元0.039%,四喜(含大四喜+小四喜)0.012%,字一色0.008%,清老头0.00181%,地和0.00158%,绿一色0.0011%,九莲宝灯0.00045%,天和0.000303%,四杠子0.000234%。也就是说如果你能在一局内发出BBB*4,你还不如拿着运气去赌那个传说中的夭寿役。

分星和暴击
好了,在介绍完竞速最难以控制的发牌之后,我们该讲一下最玄学的分星和暴击。为什么说玄学呢,因为描述不能,只能靠构造一个程序去模拟这个机制,然而这已经超出的我知识范围了。(我写程序就像CXK)

首先呢,我们聊聊分星。分星我在上一篇里讲过,我们现在再提一下:
集星度:从者星权*(1±集星BUFF±指令卡集星BUFF)+随机权重,其中随机权重为随机分配的50、20、20、0、0。
我们可以知道,当从者星权越低的时候,集星度受随机权重影响越大,星星分配越不均匀,这也是狂阶单挑时候的优势所在,无集星技能的狂阶单挑过程中假如有14颗星,则高概率按照6:3:3:1:1来分布,被分配出高星星的卡暴击成功率自然高。假如是骑阶的话,这个分星基本就是按照均分来的了,比如3:3:3:3:2(この四暗刻だ!),是想暴击也难。
由于随机权重的存在,同时由于竞速中拐的不固定,大部分情况下并非双术+打手在场,使得分星很难构造一个合理的数学模型去描述,而因为分星实在玄学过头,我们对于暴击的具体概率也同样难以进行计算,在这里我们借用一下百川的1-49星的打手+双术单、双、三卡暴击概率模型[出处:https://bbs.nga.cn/read.php?tid=13165556]

这里的概率为打手全卡均暴击的概率,我们可以看到,这个暴击概率曲线均为S型或其变形的曲线:
当集星度较低(10-50)时,单卡暴击概率中低星下随星增加缓慢上升,星超过35后增长速度加快;而卡越多,则前期的暴击概率越低,且突然增长的拐点便越后。前期受星星数量影响较低,后期受星星数量影响较大(废话别人抢完了才有你的份)。对这类打手而言,除非信仰欧爆,否则想让他们稳定暴击需要维持40+的星星,且在高星下,单卡和多卡暴击的暴击概率相近。
随着集星度的增加,到90-100时,单卡暴击概率呈直线型增长;而卡增加,则变成前期斜率偏低后期斜率高的折线,卡越多前期的概率也越低,折点也越后。对这类打手而言,星星数量对暴击影响很大,虽然25星就能保证双卡50%暴击可能,但求稳定必然是越多越好。
集星度继续增加,到150以上时,单卡暴击概率先是快速增加到1附近,且集星度越高,增长速率越大,随后变成较稳定的直线;而卡增加,S型曲线的特征越明显,卡越多前期的概率也越低,两个折点也越靠后。对这类打手而言,中等数量的星下稳定爆多卡是他们的权利。
当集星度达到了300以上之后,低星下每张卡都能分配到一定数量的星星,使得他们完全有能力在低星下爆多卡。20星爆3对于他们来说其实也不算很难,因为每张卡都能分到5颗或以上的星星。当然剑兰的集星度是6100,号称人形吸星石,正常情况下除非剑兰星星溢出,不然其他人别想分出一颗星星。
顺便说一下,这个曲线在拐的星权更高时,会整体右移,也就是说保持一定暴击概率的话需要更多的星星。
对于如何稳定暴击,我们有一个话糙理不糙的方法:50星必定全部暴击。但其实也有另一个说法:你永远不知道49星会发生什么。

伤害随机
随机伤害是FGO竞速中最后的关卡,面对一个血量高于我们均伤的敌人,我们很需要随机数的帮助才能实现击杀。
我们首先可以知道,随机数是0.9~1.1(实际为0.9~1.099)的均匀分布,也就是对于一张指令卡的伤害而言,从0.9随机数到1.1随机数的出现概率都是等可能的。
我们记第一个张卡的伤害为A,平均伤害为a,有A~U(0.9a,1.1a)。伤害分布如下:

当我们再引入一个新的卡,伤害为B,平均伤害为b,有B~U(0.9b,1.1b),伤害分布和A类似。
这时我们需要计算一下A+B的伤害分布,不妨假设Z=A+B且a>b,我们可以画出一个二维连续型均匀分布如下:

明显的,这是一个长0.2a宽0.2b的矩形。作斜率为-1的直线Y=-X+Z,平移该直线,当直线经过这个矩形时,直线于Y轴的截距Z则是两张卡伤害的总和,而直线被矩形区域所截取的长度可以看作概率密度的大小分布。明显可知,随着直线不断上升,这个概率密度不断增加,直到直线与矩形的角接触,之后保持稳定的概率密度,直到接触了新的角,继续移动直线则概率密度在不断减少。
经过定性分析,我们可以得到这个Z的概率分布如下:

这是一个等边梯形。
我们也能用三维的类似的定性方法去描述ABC三张卡的伤害,得到如下的伤害概率分布:

当然四维也可以得到:

是不是有些莫名的熟悉感呢?实际上,当增加的卡越多,这个伤害概率密度分布越接近一个我们熟悉的分布曲线:正态分布。

而这个分布的方差我们可以根据以下方法预估:
假若有两个卡伤害不同,那么这个伤害概率密度分布梯形的下底长度是0.2a+0.2b,上底长度是|0.2a-0.2b|。在a+b=const的情况下,a与b相差越离谱,上底长度自然越大,其概率密度分布曲线越低矮,即分布得越分散,方差增大。


将其类比到了三卡或者四卡的伤害分布也是同样,很明显的,每张卡间伤害偏差越大,这个总伤害的方差就越大。

这个方差的意义是什么呢?
首先我们定义一个击破概率,这个概率可以在敌方血量对于的总伤害位置上做一条垂直x轴的直线,则这条直线以右被概率分布曲线所围的区域的面积则是击破的概率。显然的,方差越大,对高血量的敌人击破概率越大。

我们举一个简单的例子,比如说我们要击杀一个105000血的敌人,而我们四张卡的平均总伤害只有100000,也即是我们需要打出一回合的均伤的1.05随机数,这个随机数难度有多大呢?如果我们四张卡的伤害都是25000,那么很遗憾,击破概率只有可怜的0.0402;如果伤害是40000/30000/20000/10000,那么击破概率则是0.0569,明显提高了;那我们再极端一点,取80000/10000/6000/4000,这个时候的击破概率则提高到了0.1842。
很震惊吧?这四张卡的伤害偏差越是极端,对需要打出高随机数的敌人击破概率就越高。
但这个方差是一把双刃剑,能帮你击破高血量的敌人同时,在你攻击本应该很低随机数就能击破的时候,你有可能被随机数制裁得死死的。还是那个例子,我们要击杀一个95000血的敌人,而我们四张卡的平均总伤害只有100000,也即是我们只需要打出一回合的均伤的0.95随机数。如果我们四张卡的伤害都是25000,那么不能击破的概率只有0.0402;如果伤害是40000/30000/20000/10000,那么不能击破概率则是0.0569;取80000/10000/6000/4000,这个时候的不能击破的概率则提高到了0.1842。
也即是说,如果方差大,则说明了这一次的伤害上限高而下限低。

总而言之,在伤害需要考虑高随机数的时候,伤害偏差足够大时,你尽管上;伤害偏差较小,建议悠着点,或许改变一下剧本是更好的方法。当然,一般情况里,宝xxex一套的伤害里每一张卡的伤害均值差异比较大,而这个方差提供了一个定性估算上限的方法。
当然,既然正态分布都弄出来了,我们也可以用正态分布的特性去理解多张卡的伤害分布。比如说,用脚趾想都能知道,一回合内四张指令卡全部打出1.1系数难度有多大。凡是剧本见到伤害随机1.1的,建议重写剧本,不要挣扎了,这是基本不可能的事情。

结语
写这个科普文虽然比起前篇要短得多,但是特别累,为了构建伤害随机的概型找了好多资料打算去用科学语音描述,结果发现还不如直接绘图。(对对对,我承认我菜,不好好学习)
总而言之竞速中与概率相关的事情非常之多,而一个普通剧本的理想成功率,基本只与发牌有关,也即是发牌成功率≈竞速成功率。只有发牌是不存在SL的可能性的,其余都是能通过SL出现多次尝试。当然如果是那种敌方血量甚至需要考虑roll高随机数的剧本,那么这个击破成功率也要算进这个成功率。
但这个成功率并不是绝对的,在一个高难里随时都有可能发生意外的情况,有可能本来计划着打出一个BQA的一套,然后只发出一个其他英灵的B和打手的BA,这种时候别放弃啊,万一首红下的BA击破了对面呢?相比于纯粹的发牌成功,有的时候可能稍微跑歪了也能成功竞速。这种情况尤其在车轮战里经常出现。所以说,竞速的实际成功率是在目标发牌成功率的上下浮动的,具体到某一个数值是很困难的。
不过上一个科普的评论里,既然提到了时间成本的话,首先我们先记住两个公式:
期望AP=期望次数*副本AP;期望时间=期望平均时间*期望次数。
在极端情况下期望时间超过副本开放的时间,那么需要采取新的思路组合。
简单来说就是:对一个5AP的本,假如剧本的发牌成功率是4%,那也就是25次里会大概出现一次,那么理论上的AP消耗为125AP,如果算上一些不稳定情况导致尝试次数增加,且各种概率问题的影响,使得实际消耗为180AP,也就是36次(这可是很常见的),每次进场两分钟,SL两分钟的情况下,开宝具15秒,一通操作2分钟,那么你打出你想要的剧本的那一次有可能会上10分钟。而在之前的尝试里,你有可能两分钟进本看到发牌直接退,有可能花费了678分钟进入了T2被发牌制裁直接退,有可能因为SL多次都未能成功而退出,这一段过程里消耗的时间非常的多(但至少比起1.08的伤害随机数容易),如果欧洲有可能半小时就出来了,如果脸黑则有可能6小时往上,当然这是实际情况里的两个极端。一般情况下,对于一般3T就能结束的本,每回合发牌不超过两张,伤害随机数在均值左右且分星压力不大,卖拐也很方便的话,期望就是一个小时左右;如果是稍微有一两个地方出现点压力的话,时间会稍微延长1-2小时;三四个地方出现压力,则会上升到5-6小时;而如果剧本处处漏风的话,那可能一天都没办法出现一次,这种剧本称为死亡剧本,除非这种剧本是唯一解,否则还是选择一个新的剧本吧。
虽然讲了这么多,但竞速不只是一个刷脸的玩法,每一个剧本的达成,离不开毅力和计算,还有偶尔的奇思妙想和突然的莽劲。哪怕过程只有沙漠般一成不变的荒芜风景,当翻越沙漠到达绿洲之后,我们不止有汗水,也有欣慰的微笑。
所以啊……不要停下来啊!(指竞速)


附录
参考资料
[理论分析] 战斗中随机数的具体应用,不同操作对SL的影响:https://bbs.nga.cn/read.php?tid=12011658
[理论分析] 打出黑狗7T大菩萨,还是中一万多次双色球,你选哪个?:https://bbs.nga.cn/read.php?tid=16663291
部分图片以及数据资料取自:[理论分析] [组队研究] 竞速的参考要素及衡量指标--在竞速中厨力放出:https://bbs.nga.cn/read.php?tid=13165556
部分公式来自Mooncell:https://fgo.wiki/w/%E6%B8%B8%E6%88%8F%E6%95%B0%E6%8D%AE%E5%9F%BA%E7%A1%80
特别鸣谢:家驹Asuka、③叁③