blacksouls吧 关注:78,976贴子:838,628

[bs学期刊] 关于复活类装备的概率学模型——以1+9洛德战为例

取消只看楼主收藏回复

**摘要**
如题,本贴是关于bs2中两件与复活有关的装备(守护天使、龙守)在概率学上的数学模型与一些公式推导。
当然标题只是引流用,楼主身为一个摆烂大学生,学术规范和严谨什么的当然是不会有的😋


IP属地:北京1楼2024-03-29 19:30回复
    这两件复活的装备还是很少会有人去研究的,毕竟目前的1+9大都也在追求稳定解,而涉及到非稳定的复活的话大伙就都不是很想去碰了。
    大概也就洛德这种turn0放杀招的战斗是不得不靠复活扛过去的,而洛德也不是1+9必打的战役,所以大部分人都会略过这战,也导致了这一领域在先前有较大的空白。
    而事情的起因,是一位群友在打α的时候在群里提了关于洛德战的一些问题。众所周知,α限制的提出者本人是打了洛德的,其目的是为了靠洛德头秒格尔达,但洛德这战他的做法是单龙守硬凹。从现在的观点来看,这显然并不是什么好打法。

    1+9发展到现在,有些老打法从现在的观点来看自然是有很多优化空间的,当时那位群友想必也是因此在群里抛出了此次话题,可惜如果我没记错的话当时整个英灵殿只有王佬回应了他()可能大伙都正好没空捏😋
    我当时也手头有事也没参与讨论,不过当时两人得出的一些比较有趣的结论还是给我留下了深刻印象的。昨晚正好又有群友问1+9洛德怎么打,让我想起了那天的讨论,就手痒难耐推导了一些公式,今天又整理了一下发了这贴。


    IP属地:北京3楼2024-03-29 19:56
    收起回复
      **目录**
      - 问题的提出
      - 龙戒的基本模型
      - 守护天使的模型以及两者组合在一起的模型
      - 龙戒模型的进一步拓展


      IP属地:北京4楼2024-03-29 20:05
      回复
        **问题的提出**
        本问题研究的无非是 "复活n次" / "抗n下不死"的概率这类问题,如果是单带复活甲/龙戒的情况显然是简单到不用想的,比如复活甲凹洛德的19连就是`0.8^19 = 1.4%`,这种问题也不用多说什么。不过如果复活甲和龙戒一起带的话问题就有趣起来了。
        首先要考虑的一个问题,就是复活甲复不复活和龙戒碎不碎相关的判定顺序。先不论处理复活的脚本里到底是怎么写相关的判定逻辑的,至少在bs2中涉及到的场景里,那天测试下来的结论大致是:先判定复活甲的0.8复活,如果没过的话再轮到龙戒的100%复活,然后再判定龙戒碎不碎。
        当然此结论严格来说不算严谨,可能需要进一步细读源码,但我懒了😋。况且这个脚本在bs2中用到的地方似乎也就这两装备和护士了,目前来讲这个结论也够用了。
        回到原来的问题上,我们可以从这个结论看到判定复活甲拉起来的复活时是不会判定龙戒碎不碎的。那这样的话要考虑的东西就多了,复活甲复活成功0.8,而剩下的0.2里龙戒又有碎不碎的情况,它什么时候碎又会影响第二个龙戒什么时候开始判定碎不碎,总体来说,这已经不是0.8^19这种不用纸笔都能解决的问题了。
        而当时群友给出的解决方案是跑了一个大数量级的模拟,如图

        算的是复活甲+2龙戒情况下吃洛德19连的情况,最终结果成功率是37.6477%,我们先记住这个结论。
        这是计算机科学给出的解决方案,而接下来展示的是从数学上给出的解决方案。


        IP属地:北京5楼2024-03-29 20:38
        收起回复
          **龙戒的基本模型**
          我们一步步来看。先设随机变量A表示龙戒是否会碎,1为碎0为不碎,则有

          接着设随机变量B,用{B=n}表示单个龙戒在第n次复活时碎掉。比方说{B=4}用随机变量A的形式表示的话应该是类似于0001,也就是前三次没碎为0最后一次为1,那么其概率也很显然是前三次0的0.25^3乘以最后一次的0.75。
          用公式描述即为

          这个公式离实际应用上还差点,实际情况一般是"带单个龙戒、至少抗下n次不死",也就是{B>=n}的情况

          首先如上处理,避免算无穷级数。然后算P{B<n},也就是B=1~n-1时的概率全部相加,实际上如果把P{B=n}看作是一个数列An的话,那也就是求一个等比数列的前n项和Sn,也就是如下处理。

          单看结论的话,抗1次是100%,2次是25%,这不就是0.25^n-1这种乘法定理就能解决的超简单问题吗。但如果再往后推广的话,这里的推导过程就会显得比较有意义了,所以先别急,看下去。


          IP属地:北京6楼2024-03-29 22:17
          收起回复
            接着从单龙戒推广到2龙戒的情况。设随机变量C,同样的用P{C=n}表示第n次复活2龙戒都碎完了,则根据定义有

            其意义为:n次复活被2龙戒瓜分,其中第一枚龙戒分走前i次,后一枚占据剩余的,然后枚举i求和便能得到所有的情况。接着如下代入化简

            到此为止sigma内已经与i无关,也就是直接*n-1得


            IP属地:北京9楼2024-03-29 22:31
            回复
              接下来同样是类似的,我们要求P{C>=n}:

              并且同样类似的,一直到求数列前n项和这一步前的这几步几乎都是原封不动从单龙戒的情况那里搬下来的,这也是我上边说那些推导不是全部木大的原因。
              而到了数列求和这步,可以看到这次的数列并不是一个简单的等比数列了。如果有现役高三生的话看到这个想必能直接秒了吧,就是一个很基础的错位相减:

              将Sn-1代入回去即有结论:


              IP属地:北京10楼2024-03-29 23:10
              回复
                至此,单龙戒和2龙戒的情况推导完毕,本贴第一部分也就到此为止了。而在比较常见的自限中,也就是通常的1+9禁迷宫限制2周目通关,也就2周目各从南瓜兄家里借来2龙戒。另外一共4个戒指位里,如果要用到2个以上的位置戴龙戒,很难想象要如何进行正常的战斗。
                因此2龙戒的情况足以应对大部分应用场景了,剩下的3龙戒4龙戒因为比较麻烦,暂且就不在本部分讨论了。


                IP属地:北京11楼2024-03-29 23:16
                回复
                  **复活甲以及和龙戒组合的情况**
                  复活甲的话还是比较清晰明了的。没有龙戒的情况的话,其概率就是简单的乘法公式0.8^n。可以看到如果是在洛德战的19连中其结果不到2%。
                  但一旦算上龙戒的话,其概率就会反直觉地一下子飙升,例如之前叫大伙记住的那个数字,也就是复活甲+2龙戒就能把2%不到的成功率变为37%。
                  其原因:
                  一是因为龙戒是保底复活一次的,根据前面已经推导出的公式也可以看出来,一旦离了保底的这几次,也就是当n>2时成功率是指数级下降的;
                  二则是一个小小的障眼法,还是那句话,如果是处于智力巅峰的现役高三生可能就一下子看破了这个障眼法,但像楼主这种退役许久的笨比没文化大学生可能就会这么想:去掉2龙戒保底的2次那不就是0.8^17=2.3%吗?这不是没高多少吗?龙戒****
                  而这障眼法背后的模型实为二项分布,具体来说:
                  做n次复活试验,其结果80%为1即成功复活,20%为0即没复活。其n次试验互相独立,结果又是01式的,符合概率论中伯努利试验的定义,则若定义随机变量D,事件{D=k}表示成功复活恰好在n次伯努利试验中发生了k次,那么该事件的分布应满足二项分布。
                  在本应用场合中,n取19次复活,则套二项分布公式可得

                  来理解下这个公式,举例来说:假如只考虑2龙戒保底的2次,那就是先19选2,在分别乘上成功的17次和失败的2次,也就是0.8^17 * 0.2^2,成功率一下子来到了15%,这就是19选2带给我的自信。


                  IP属地:北京13楼2024-03-29 23:57
                  回复
                    离推出最后的公式只差一步之遥了,也就是如下的乘法原则,将"2龙戒"的变量C乘以"复活甲"的变量D

                    其中龙戒次数为0的情况不能带公式,要特判一下。
                    而代入数据经过卡西欧计算得到的结果如下

                    和之前提到的37.6477%是一致的,公式正确性也验证完毕了,本部分至此结束。


                    IP属地:北京14楼2024-03-30 00:08
                    回复
                      **龙戒模型的推广**
                      先前提到,除了单龙戒、2龙戒的情况,3、4龙戒的情况也是应该推出来的,本部分便着眼于此。
                      推导的思路还是一样的,先来回顾一下。这里重新定义随机变量 X1 X2 X3 X4 ,分别代表1 2 3 4龙戒的情况。则推导过程为
                      1. 计算P{Xi=n}
                      2. 令an=P{Xi=n},计算此数列的前n项和Sn
                      3. P{Xi>=n} = 1-Sn-1


                      IP属地:北京16楼2024-03-30 00:31
                      收起回复
                        桀桀桀楼主我已经完全理解其中的数学原理啦😋吃个饭回来就更


                        IP属地:北京来自Android客户端22楼2024-03-30 13:29
                        回复
                          接16楼,我们先来看3龙戒的情况。首先来看上述的第一步,求P{Xi=n}。
                          我们回忆一下2龙戒的情况,是通过用0/1表示不碎/碎,形成一个长为n的01序列(形如0001001),来表示第n次复活2龙戒正好都碎掉的情况。我们用i来枚举第一个1在序列里的位置,便能得出如下的式子

                          同样的,3龙戒则是会形成一个有3个1的01序列如001010001,其中第一个1和第二个1的位置都需要枚举,也就是两层sigma分别枚举i j,如下

                          代入先前推的公式:

                          分母消掉、分子3个3相乘得:

                          此式依然与i j 无关,轻松去掉第一层sigma:

                          接下来这个sigma是一个等差求和,也是轻松去掉,最后化简得出结果:

                          至此第1步是已经完成了


                          IP属地:北京23楼2024-03-30 16:11
                          回复
                            但在第2步开始求取这个数列的前n项和前,我们先看看得到的这个数列有什么特点。
                            如下是先前在1 2 3龙戒的情况下推出的数列式子:

                            它们都有个明显的特点,就是分子上是一个最高次项的次数在不断递增的多项式。1龙戒时是0次,2龙戒时是1次,3龙戒时则是2次,按这个规律我们可以推断出后续的4龙戒分子必然会是3次多项式。
                            分子是0次时,此数列就是一个等比;分子是1次时,此数列是错位相减的经典例题;那么如果分子是2次、3次乃至更高次的多项式时,Sn的求取又有什么通用的解法呢?接下来会先以3龙戒的这个数列为例计算,再推导出通解法


                            IP属地:北京24楼2024-03-30 16:20
                            回复
                              来到第2步,也就是求Sn这步。为了方便讲解,我们对$a_n$作如下变形

                              其第三项是一个等比。而第二项的分子最高次为一次,也就是先前说的错位相减的经典例题,也不必多说了随手就能求,于是问题只剩下第一项。
                              把第一项单拿出来,现在便是要求该数列bn的Sn这个子问题

                              有了cn的Sn-1,代回去便能求出bn的Sn,再代回去便有an的Sn,那么第2步就结束了。
                              第2步的Sn有了,再代入第3步的P{Xi>=n} = 1-Sn-1便能得到结论了。
                              到这里,光是3龙戒的情况已经有小半张草稿纸的计算了,既然已经把思路说清楚了我就不放上来了,这里直接放上计算结果:

                              可以看到,这里的结果上,分子的次数也是不断递增的。
                              ps:公式的正确性已经经过计算机模拟验证过了,应该是不会有算错的地方的( ゚∀。)7


                              IP属地:北京25楼2024-03-30 17:04
                              回复