lovelive研究部吧 关注:4,773贴子:36,234

【自搬】Lovelive时间判定技能的分析及数值模拟

只看楼主收藏回复

2015年7月1日发布于lovelive国服吧,现自搬运至研究部
标题:Lovelive时间判定技能的分析及数值模拟
作者:各种化肥
作者介绍:


IP属地:广东1楼2016-04-02 19:59回复
    目录:
    摘要
    Abstract
    第一章 前言
    1.1 判定技能的分类
    1.2 判定技能的特点
    1.3 为什么要研究时判技能
    第二章 时判技能的属性分析
    2.1 时判技能的发动时间节点验证设计
    2.2 时判技能的发动时间节点验证
    2.3 时判技能的触发机理
    第三章 时判技能的覆盖概率时间分布的数值模拟
    3.1 计算原理
    3.1.1 解析方法
    3.1.2 数值模拟之蒙特卡洛方法
    3.2 模拟过程设计
    3.2.1 实验模型的建立
    3.2.2 随机数抽样
    3.2.3 实验值的获得与统计
    3.3 计算结果及分析
    3.4 误差分析
    第四章 时判技能覆盖概率时间分布的应用
    4.1 组合判定技能的全曲覆盖
    4.2 单曲难点的强化覆盖
    5.结语
    参考文献
    附录1 主函数源代码
    附录2 国服中已有的时判卡片覆盖概率时间分布汇总


    IP属地:广东2楼2016-04-02 20:00
    收起回复
      摘要
      时间判定技能为Lovelive手游中卡牌技能中,判定技能的一个大类。
      本文通过实验验证,得出了时间判定技能的触发机理;采用蒙特卡洛方法,在Matlab中对时间判定技能进行模拟抽象,对实验结果进行统计得出了每一个具体的“时判技能的覆盖概率对于时间的分布”。并对结果进行了分析;以几个例子说明了“覆盖概率对于时间的分布图”的应用范围和使用方法。
      关键词:Lovelive 时间判定 数值模拟 分析 应用
      Abstract
      ……
      key words:……


      IP属地:广东3楼2016-04-02 20:02
      回复
        第二章 时判技能的属性分析
        2.1 时判技能的发动时间节点验证设计
        在第二章的开头,笔者直接提出两个问题:时判技能的发动时间节点是从哪里开始算的;时判技能的连续发动,是以判定周期直接推进还是受到判定状态的影响。
         问题一源自对歌曲开始的时间点判断,我们知道,当点开一场Live时,会经过封面出现—封面消失—成员出现—第一个note出现,这样一个过程,那么我们需要确定时间判定技能的计时起点,才能为后续的应用提供准确的结果。
         问题二来源于某些时判卡片的条件时间和获得判定时间差别不大,如果以条件时间作为周期连续发动的话,会不会出现连续长时间覆盖的情况。
         因此通过两个实验来对这两种节点进行验证。首先,准备实验材料,一张时间短见效快(单次Live的触发次数高)的时判卡,以便节省实验资源(LP),八张n卡,以便更清楚的观测到时判技能发动的时间点,一个计时器(也可以使用录像的方法,笔者这里使用的是计时器),以及一首时间不太短的easy(便于一边观察技能的发动情况一边操作计时器而不至于Live失败)。
        (1)通过对猜测计时起点到技能首次发动的时间段进行记录,计算其是否为技能发动条件的整数倍,则可以获得计时起点。
        (2)通过对技能两次发动的时间间隔进行测量,计算其是否为技能发动条件的整数倍,获得时判技能连续发动是否受到判定状态的影响的答案。
        2.2 时判技能的发动时间节点验证
         笔者以这只Lv1的打工果为例,用wonderful rush和OLP进行实验,

        【图2.1】
         实验记录如下:第一项为猜测封面消失作为计时起点到技能第一次发动的时间;第二项为猜测成员出现作为计时起点到技能第一次发动的时间;第三项第四项为键盘出问题请忽略;第五项为两次技能发动的时间间隔(计时结束时按键没按稳,有零点几秒的延迟)。
        【表2-1】

        2.3 时判技能的触发机理
        打工果的技能条件时间为12s,技能覆盖时间为3.5s。将上述实验结果除以技能条件时间12s,分别为1.196,3.0125,2.35。由此可得:
         计时起点为成员出现的瞬间;时判技能连续发动受到判定状态的影响。进一步分析。将第五项结果减去2个条件周期,结果为4.21,前面提到,实验过程中计时结束时按键没按稳,有零点几秒的延迟,考虑到这部分延迟,则该结果与条件时间周期的整数倍的差值与技能覆盖时间即3.5接近(更精确的实验可以通过录像分析来进行),可以得出另一个结论,对于时判技能连续发动的计时节点,是以上一次技能覆盖结束作为起点的。
         通过上面的分析,我们得出了时判技能的机理:时判技能计时起点为成员出现的瞬间;对于时判技能连续发动的计时节点,是以上一次技能覆盖结束作为起点的。


        IP属地:广东5楼2016-04-02 20:05
        回复
          3.2 模拟过程设计
          3.2.1 实验模型的建立
          在Matlab中建立实验模型,首先以一个全局时间作为循环变量,用来表达整个Live的进程,每0.5s输出一个技能发动情况,若技能触发,则后续的覆盖时间td内输出1,否则输出0。时判技能的每一次发动,都经过两个判断条件,其一是计时节点满足条件时间t,其二是触发判定落入条件概率p区间。
           由于时判技能的连续触发受到上一次发动的影响,因此全局时间变量不能用于判断技能是否触发,因此在循环体内,仍需建立一个局部时间变量tb。
           随着全局时间的进程,循环中每一步判断局部时间变量是否等于条件时间t,若不等于则输出0进入下一次循环,若等于则执行第二次判断,由随机抽样获得一个参数,判断该参数是否在条件概率区间内,若不在,则相当于技能没有发动,输出一个0,并且将局部时间变量清零,进入下一个循环;若在条件区间内,则相当于技能发动,输出一串1,其长度等于td,并且全局时间变量增加td,小循环结束时将局部时间变量清零,进入下一个大循环。下图展示了实验模型的流程。

          【图3.1】
          3.2.2 随机数抽样
          从时判技能的描述来看,“以p的概率获得判定增强”,即对于这个触发与否,有两种随机状态,
          P(技能发动)=p;
          P(技能未发动)=1-p;
          满足两点分布,因此这里我们直接采用Matlab自带的随机函数进行抽样:
          rand(1) <= p;
           即由rand(1)产生一个0~1之间的随机数的1×1的方阵,实际上1×1的方阵即等于一个数,判断这个随机数是否小于等于所给定的技能条件概率p,若小于或等于,则返回true,否则返回false。即完成了一次抽样过程。
          实际程序中,这个抽样过程被直接放到了循环体内。
          3.2.3 实验值的获得与统计
          模型中的循环体每执行完一次,即完成了一次随机实验,其结果被赋值到一个临时储存数组中。然后,将数组中的值赋值到一个临时储存矩阵中,即得到了一组数据。
           那么我们重复N次实验,完成后,这个N×260的临时储存矩阵中,就记录了N次实验的结果。我们每隔0.5秒做一次统计,在这0.5秒内,N组实验中技能一共覆盖了多少次,将这个次数除以N,即可得到该0.5秒内技能覆盖的频率。由于当前游戏中的歌曲计时时间没有超过130s的,所以我们只需要把130s统计完,即得到一个技能发动频率对时间的分布的实验值。将这个实验值作为我们所要求解的概率分布。


          IP属地:广东7楼2016-04-02 20:07
          收起回复
            3.3 计算结果及分析
            笔者对目前国服中已有的时判卡做了数值模拟,并将其列在本文末尾的“附录2”中。其中只对Lv1技能做了计算,卡面以及技能说明来源于LLhelper[1]。模拟实验中的实验次数N设为5000。
             下面取几个较为典型的时判技能属性的计算结果进行分析。

            【图3.2 (a)No.133真夏花(10;18%;5)】

            【图3.2 (b)No.176厨娘果(18;40%;4.5)】

            【图3.2 (c)No.202圣诞花(11;40%;2.5)】
            其中,No.133的条件时间t短,覆盖时间与条件时间比值td/t大;No.176的条件时间t长,覆盖时间与条件时间比值td/t小;No.133的条件时间t短,覆盖时间与条件时间比值td/t小。
             她们的覆盖概率时间分布有着明显的区别,No.133的覆盖率除了一开始有波动,往后这很快的趋于平稳;No.176的覆盖区域则明显的集中在了一首歌的几个时间段内;作者各种化肥,No.202的覆盖率则是在整个Live的进程中都有波动,显得不稳定。
             然而这几个分布也有共同点,首先,都可以在分布图中的第一个峰读出技能的参数,峰的开始时间即为t,峰的高度为p,宽度为td;其次,覆盖的稳定性都随着时间的进程由不稳定逐渐趋于稳定;再次,这几个分布图都由一个一个波峰构成,呈现一定的周期,并且基波分量逐渐降低,高次谐波分量逐渐增加。
            这点也很好理解,因为时判技能的后续发动收到前期发动的影响,越往后则影响的因素越多,而这些因素本身都是随机变量,因此随着时间的推移,触发情况越复杂。而当时间长到一定程度时,其分布又趋于稳定则是由于基波分量渐渐被更多的谐波所淹没。
            3.4 误差分析
            由于蒙特卡洛方法本质是以随机抽样为手段的,因此在这个过程中会有随机误差,虽然增加抽样数量会使结果更准确,但是随机本身的方不能消除。
             由于篇幅有限,本文中无法给出对这个误差值的详细计算,但可以给出一些实验过程中的观测值,本实验中设的N=5000,对实验结果第一个峰值的观测,与定义的p的绝对误差值基本都在1%以内,出现过一次1.6%的绝对误差。
             另外,由计算机程序产生的随机数是按照一定算法模拟产生的,其结果是确定的,因此不是真随机数,而是伪随机数。


            IP属地:广东8楼2016-04-02 20:09
            回复
              4.2 单曲难点的强化覆盖
              上一节提到《ススメ→トゥモロウ》的开头有比较长的一段note输出量较低的前奏,经过27.44s前奏才结束。并且开始第31个note的判定,然而从31note开始,就是一串一边长条一边单note的接力,在衔接的地方长条很容易断。

              【图4.2】
               再看卡组,虽然有9个N判,但是技能能在这个时候发动的只有2号位的小鸟和4号位的海爷,覆盖率为64.25%。能否选择一张合适的T判卡,来增强这个部分的覆盖率呢。我们看到,这个地方的计时点是27.44秒往后的一段时间,那么前往附录2,观察在这段时间有没有覆盖比较高的。No.100辅导员妮在这里有16%的覆盖率,No.174读数绘则有23%的覆盖能力,No.255情人鸟在这里也不错……
               上个月的SM活动,著名的微热机关枪虐过不少玩家,那么这里我们也试着分析一下,有没有适应加强对微热机关枪的覆盖率的时判卡。

              【图4.3】[2]
               首先,通过计时,得到微热机关枪的判定时间,为66.58s~71.11s。然后我们再次前往附录2,看看有没有在66秒到71秒附近覆盖率较高的时判卡。我们发现,由于时判技能的性质,在歌曲进程的后大半部分,UR时判基本都能以15%以上的覆盖率稳定覆盖。然而对于更多的玩家来讲,作者各种化肥,拥有一张SR时判的可能性要更大。那么我们来比较下面两张SR时判:No.150僵尸希,No.294打工希,如下图所示,僵尸希以17%的概率覆盖了微热机关枪的前一半,后一半也有11%的覆盖率,而打工希则完美的避开了对微热机关枪前一半的覆盖,后一半也只有10%的覆盖率。

              【图4.4】
               显然,在这两张SR时判中,选择一张去增加微热机关枪的覆盖率,No.150僵尸希更为合适。


              IP属地:广东11楼2016-04-02 20:15
              回复
                附录1 主函数源代码
                function [y] = rand_sample(N,t,p,td)
                %
                % 定义输出结果数组
                y = zeros(1,260);
                % 定义临时储存矩阵
                Y = zeros(N,280);
                % 临时储存矩阵赋值循环
                for i = 1:N
                % 定义临时储存数组
                result = zeros(1,260);
                % 定义全局时间变量
                tg = 0.5;
                % 定义判定周期时间变量
                tb = -0.5;
                % 单次随机试验循环体
                % 由于在小循环中没有添加break条件,result数组可能会溢出
                % 因此在前面的定义中增加了矩阵的容量,即使溢出也可以放进去
                % 而后面的统计是只统计到260列的,所以对结果没有影响
                while tg <= 130
                tb = tb+0.5;
                if tb == t
                if rand(1) <= p
                for tc = 0.5:0.5:td
                result(2*tg) = 1;
                tg = tg+0.5;
                end
                end
                tb = 0;
                else
                result(2*tg) = 0;
                end
                tg = tg+0.5;
                end
                Y(i,1:length(result)) = result;
                end
                % 统计临时储存矩阵中每0.5秒判定的覆盖率
                for j =1:260
                y(j) = sum(Y(1:N,j))/N;
                end
                end


                IP属地:广东13楼2016-04-02 20:17
                回复
                  好了,其实前三章理工科出身的玩家可能容易看懂一些,
                  第四章我用了一些例子来说明,附录2的使用方法,因此下面的附录2才是重点。
                  附录2 国服中已有的时判卡片覆盖概率时间分布汇总
                  No.058 SR 【天人合一】园田海未 (初期)
                  每10秒有36%概率增强判定3秒

                  No.073 UR 【爱神之箭!】园田海未 (初期)
                  每9秒有36%概率增强判定5秒

                  No.088 UR 【天籁之音】南小鸟 (初期)
                  每17秒有36%概率增强判定9秒


                  IP属地:广东14楼2016-04-02 20:18
                  回复
                    附录2(续)
                    No.100 SR 【特别辅导噢?】矢泽妮可 (职业篇)
                    每13秒有18%概率增强判定7.5秒

                    No.133 SR 【浪尖上的公主】小泉花阳 (8月篇)
                    每10秒有18%概率增强判定5秒

                    No.150 SR 【龙抓手】东条希 (怪谈篇)
                    每15秒有39%概率增强判定4秒

                    No.174 SR 【适合读书的秋天】绚濑绘里 (读书篇)
                    每14秒有35%概率增强判定4秒


                    IP属地:广东15楼2016-04-02 20:20
                    回复
                      附录2 (续)
                      No.176 SR 【吃零食什么的最幸福了】高坂穗乃果 (11月篇)
                      每18秒有40%概率增强判定4.5秒

                      No.202 SR 【圣诞大餐】小泉花阳 (12月篇)
                      每11秒有40%概率增强判定2.5秒

                      No.220 SR 【一年一度的盛装】西木野真姬 (1月篇)
                      每8秒有21%概率增强判定4秒

                      No.255 SR 【入口即化的甜点?】南小鸟 (2月篇)
                      每13秒有41%概率增强判定3秒


                      IP属地:广东16楼2016-04-02 20:21
                      回复
                        附录2 (续)
                        No.257 UR 【真姬的秘密】西木野真姬 (2月篇)
                        每11秒有37%概率增强判定5.5秒

                        No.267 SR 【女孩子喜欢的东西】矢泽妮可 (女儿节篇)
                        每9秒有35%概率增强判定2.5秒

                        No.272 UR 【去玩吧!】星空凛 (3月篇)
                        每13秒有44%概率增强判定6秒

                        No.276 SR 【就是幸福!】高坂穗乃果 (4月篇)
                        每12秒有34%概率增强判定3.5秒


                        IP属地:广东17楼2016-04-02 20:23
                        回复
                          当时国服的时判只出到这里,论文本篇也到此为止,只对Lv1的技能进行了计算。
                          笔者经过这大半年的Live练习亲自验证发现,论文所获得的结论实用性非常有限,因此本篇只作为一个研究思路搬运到研究部与大家分享。
                          后续还计算了一些Lv2的技能,以及更新到了万盛偏,可以参考原贴http://tieba.baidu.com/p/3864674452?pn=1


                          IP属地:广东19楼2016-04-02 20:29
                          回复
                            支持化肥


                            IP属地:北京来自手机贴吧21楼2016-04-02 22:03
                            回复
                              好贴怒顶,这个浮躁的年代花费如此多的精力写作这么一篇文章难能可贵


                              IP属地:陕西22楼2016-04-03 01:53
                              回复