h5魔塔吧 关注:434贴子:3,251

全蓝宝石转换理论

只看楼主收藏回复

不定期更新


IP属地:上海1楼2018-09-07 14:18回复
    一,绪论
    众所周知,转换是魔塔里的一项非常重要的基本功。狭义的转换可定义为:通过改变同样的一组操作的顺序,从而提高血量。比如面前有5个怪物,每个怪物守着一些宝石,那么打这5个怪物有120种顺序,找出最优的顺序即是一个转换。广义的转换还包括打不同的怪物,从而产生不同的地形连通结构,来获得更高的血量。
    狭义转换例子:冥中手0f,无尽轮回

    广义转换例子:简单魔塔难度版

    请注意,广义转换的界限不是很清楚,有时候会和大路线规划产生交集。但我们一般不把道具使用也算在转换内。
    本文只讨论狭义转换。


    IP属地:上海2楼2018-09-07 14:19
    回复
      如果需要转换的操作数较少,可以直接穷举。但如果操作数很多,就需要加以一定的分析了。但由于转换的具体情况极为复杂,一直没有针对具体如何打好转换的具体理论。
      本文的目的在于解决一种较简单的情况:狭义转换,怪物守的只有蓝宝石。
      由于你的攻击力确定时,1防御对某怪物的减伤一直是一个定值(直到怪物伤害变为0为止),因此拿蓝宝石的顺序比较好把握。为简化问题,本文不考虑怪物伤害变为0的情况,假设怪物伤害一直为正,也不考虑勇士面临缺血问题的情况,假设勇士血量充分大。以上限制条件称为限制条件E。
      怪物合并:
      由于我们只需要考虑怪物的减伤,且只有蓝宝石,我们不妨把两个连在一起(中间没有蓝宝石)的怪物视为一个大怪物。设1防对怪物A的减伤为a,对怪物B的减伤为b,则1防对大怪物的减伤为a+b。


      IP属地:上海3楼2018-09-07 14:19
      回复
        二,星型结构图
        进行怪物合并后,所有怪物互不干扰,没有打完一个怪物才能打另一个怪物的情况。这是最简单的情况。


        IP属地:上海4楼2018-09-07 14:20
        回复



          IP属地:上海5楼2018-09-07 14:21
          回复
            例1:假设勇士接下来要打这几个怪物而且面临限制条件E。那么我们不需要任何其他信息就能知道,无论怎么打最后血量都没有区别。(当然连在一起的怪物得一起打)


            IP属地:上海6楼2018-09-07 14:22
            回复
              例2,满足限制条件E,请问勇士接下来怎么打(请想出答案再往下看)

              答案:1432


              IP属地:上海7楼2018-09-07 14:22
              回复
                例3,蓝宝石+1防御,请问勇士接下来怎么打(请想出答案再往下看)


                分析:勇士血量显然充足,稍微计算可得+18防后怪物伤害全都不是0(怪物伤害-1防减伤*18即可),因此限制条件E满足。
                由定理1易得正确顺序为1652473


                IP属地:上海8楼2018-09-07 14:23
                回复


                  IP属地:浙江来自Android客户端9楼2018-09-07 23:18
                  回复
                    三,八爪鱼结构
                    假设一组怪物以及其守卫的防御为一个点,勇士所处的位置也是一个点,不同的点之间按连通性连边,则形成一个图。
                    八爪鱼结构定义为将要打的怪物简化成图后,出了勇士所在的点之外所有的点度数至多为2,而且图中没有圈的结构。很明显,星型结构都是八爪鱼结构。


                    IP属地:上海10楼2018-09-08 00:03
                    收起回复
                      定义1:对一个点中的所有怪物,假设1防对其减伤a,守卫的防御数值为b,定义这个点的“特征”为a/b。
                      定义2:对于若干个点,设这些点中的所有怪物的1防减伤之和为a,守卫的防御数值之和为b,定义这个点组的特征为a/b。
                      根据第二章内容我们有:
                      定理1(星型定理):在限制条件E下,一个星型结构中,为获得最优解,只需要按点的特征从小到大开始打就可以了。假如几个点特征相同,那么这几个点可以随便安排顺序。
                      n=2时我们有
                      定理2(交换基本定理):在限制条件E下,A,B为两个点,AB优于BA的等价条件是A的特征<B的特征。
                      从勇士出发,进入一个点之后若这个点度数为2,则沿另一条边一直前进直到遇到一个度数为1的点位置。这样形成的一串点称为一条链,由于图中没有圈,一个八爪鱼结构必定由若干条互不相交链组成。上图为一个由7条链组成的八爪鱼结构。
                      定义3:假如在一条链中相邻的两个点,后面(离勇士较远)那个点的特征>=前面那个,称为好点组,反之称为坏点组。
                      以下讨论均假设限制条件E成立。


                      IP属地:上海11楼2018-09-08 00:03
                      回复
                        定理3(坏点组连续定理):在最优路线中,对一个坏点组,打了前面那个点后一定是立刻打了后面那个点。
                        证明:设前面的点A特征为a,后面的点B特征为b,b<a
                        假设不是这样,在打了A之后又进行操作C,然后打B。
                        操作C即是打了若干个点,设这些点的特征为c
                        把操作C中所有怪物放一起,守卫的防御也放一起,假设这些怪物守卫这些防御,形成一个点C‘。易知它的特征也是c。
                        易知操作C比打C‘的血多,而且多了一个固定值(操作C中的蓝宝石对C中的怪物形成的减伤)。
                        若c>b,根据交换基本定理,ACB劣于ABC,矛盾。(注意到C不是一个点,不能直接用交换基本定理,但是可以得出AC’B劣于ABC‘,而且C和C’差一个固定值,因此可得)
                        若c<=b<a,根据交换基本定理,ACB劣于CAB,矛盾。


                        IP属地:上海12楼2018-09-08 00:04
                        收起回复
                          对于一个坏点组A,B,由于打完A一定打B,我们可以把它看成一个更大的点,AB的所有怪物守卫AB的所有宝石,设为C。易知AB的血量和C的血量差一个固定值,因此这样操作后不影响最优路线的选取。
                          对一个八爪鱼,不停地这样合并后,一定会出现没有坏点组的情况。这时候的图W我们可以按所有“大点”的特征从小打大开始打,由星型定理知这是最优路线。(假设这时所有点是星型的,称为图W‘,则由星型定理W’的最优路线是按特征从小到大开始打,易知W的最优路线的血量一定<=W’的最优路线,而这能达到,因此W的最优路线也是按特征从小到大开始打。
                          综上所述,我们有
                          定理4(八爪鱼定理):在限制条件E下,一个八爪鱼结构中,为获得最优解,若有坏点组,应该将其合并成大点,直到没有坏点组为止。这时,只需要按点的特征从小到大开始打就可以了。假如几个点特征相同,那么这几个点可以随便安排顺序。


                          IP属地:上海13楼2018-09-08 00:05
                          回复
                            例4:蓝宝石+1防御,盾+5防御,血瓶+2000生命,请问怎么打?(请先写出答案再往下看)



                            IP属地:上海14楼2018-09-08 00:06
                            回复
                              答案暂时不发了,哪位路过的朋友发下答案呗


                              IP属地:上海15楼2018-09-08 00:08
                              回复(6)