梦幻模拟战吧 关注:55,965贴子:389,379

关于乱数的若干推论

只看楼主收藏回复

此处所讲的乱数即随机伤害,以往似乎并没有类似的总结,缺乏对这方面的技术研究。这里我根据个人游戏经验,以及已有的制作人透露的信息来做一些推论,算作是抛砖引玉吧。


IP属地:湖北1楼2017-05-31 10:13回复
    先把重要的引用资料摆出来,出自精品区一贴。


    IP属地:湖北2楼2017-05-31 10:15
    收起回复
      这段话描述了随机伤害与攻击次数之间的关系,不过在量化方面制作人并未给出明确数值(只是2%“左右”,并非确定为2%),所以以下公式只是近似值。
      攻击次数设为T,则T=HP(兵种)或T=5+HP/2(英雄)
      N点随机伤害的几率设为C(N),则C(N)=10!/(10-N)!/N!*(2%)^N
      关于N的取值范围,根据大部分玩家的经验,最大可以出现3的情况。但也有极个别玩家声称他们遇到了4的情况,因为并没有办法去考证,无法否定他们的这种说法,姑且认为实际可能存在4的情况。
      以下是我个人的推论,因为我不懂代码,并没有办法去证明其正确性,仅供各位参考。从梦2的数据量来看,例如佣兵的攻击修正,最大可以取到255(艾尔文战士阶段装备美赛亚剑即可)。而金钱方面,则最大可为(256*256-1)*10=655350。由此可猜想,乱数是不是也存在类似的限制机制。来看看N取1~4的情况:
      C(1)=20%=1/5
      C(2)=1.8%=9/500
      C(3)=0.096%=3/3125
      C(4)=0.00336%=21/625000
      注意N取到4时,得出的结果其分母已经需要用到625000,似乎这并没有超过金钱的上限。但我们知道,金钱实际并没有用到个位数,它实际只需用到65535来表达上限即可。从这种角度来说,我认为随机伤害出现4的情况并不存在。


      IP属地:湖北3楼2017-05-31 10:52
      收起回复
        在实际应用方面,只有C(1)的20%是很可观的。我在公关MDL2隐藏4关时,做过大量测试(容量大于1000),实际结果非常接近20%这个值。举个极端的例子,后期我方一共10人,假如全员带满6支弓兵,一回合平均可造成60*20%=12点随机伤害。也就是说,不管遇到能力多么高的敌人,它也必将在一回合内倒在我军的围殴之下!即一个人再强,也无法匹敌千军万马,还是非常符合实际情况的。
        至于说C(2),这个概率已经比较低了,应用起来就要大量的SL了。实际例子也有,不少人喜欢的第一关无秘技磨死青龙骑士团即属此列。
        C(3)基本就是可遇不可求了,连TAS视频里也很少能看到这种情况,大多数情况C(2)已经够用了。


        IP属地:湖北4楼2017-05-31 11:05
        收起回复
          随机伤害还有以下两个影响因素:
          第一,不能打出超出该单位攻击次数的伤害,一个9HP的兵显然不能靠随机伤害杀死一个10HP单位,这一点正是我方常用的重要战术;
          第二,攻击次数只计算实际打到对方身上的部分,提前被消灭的不算。也就是说,对于攻击模式快的敌人,比如领主小地波、巴尔加斯的连环爆炸等,想磨血就会异常困难。因为必须先发生随机伤害回避,使某几个单位存活下来,然后这几个单位再打出随机伤害,概率方面自然就低了很多。


          IP属地:湖北5楼2017-05-31 11:20
          收起回复
            各段文字介绍清晰 ,还是要指出,即非概率应该把概率更改为量化,HP=10=100份,2%左右这点很关键,1HP也能磨1血成立,10HP磨2.6HP还是2.4HP,不过都已经不重要,就如火纹天使戒指一样如果真有,应该不在少数。所以这个左右应该更改为2%之上3%之下。更改下2.4或2.6。而且游戏中确实存在最大值限定,地形修正也有哦255。


            IP属地:福建来自Android客户端7楼2017-05-31 13:29
            收起回复
              感谢楼主愿意做这种研究并发出帖子。
              “害得”一般只在晚上有“闲情雅致”时才开电脑上网的我这次不得不破例在这个时间上网,
              只为了能尽早参与这个帖子,
              以免被别人抢先一步把我的话说了,抢走我的风头。
              ——————————————————————————————————————————————————
              【我感觉楼主没有完全明白引用的那段资料(那张图)的含义。】
              会涉及到伤害随机性(乱数)的分为3种情况:
              1、【标准伤害值(理论伤害值)为0;】
              2、【标准伤害值(理论伤害值)为10;】
              3、【标准伤害值(理论伤害值)既不为0,也不为10(介于2者之间)。】
              【图中的那部分资料针对的是前2种情况,
              而楼主的内容(截至目前的)则是针对第1种
              ——这2者都不能用来“完整概括(包含)”乱数的性质和具体问题。】
              我之前在研究地形修正时也研究过这些方面,
              研究的结果主要是针对第3种情况。
              ——————————————————————————————————————————————————
              至于“攻击次数”和伤害之间的关系(包括但不限于“随机伤害”,还有“最大伤害”等),
              我在去年时曾因为《梦3》的一个帖子的事而顺便研究过。
              然后发出了部分成果。
              本来还有一些想说,但是看到辛辛苦苦费时费力进行研究后打了那么多字却乏人问津,就懒得(没心情)继续发剩下的了。
              https://tieba.baidu.com/p/4820389844
              (求教梦3里的两个问题【梦幻模拟战吧】_百度贴吧)
              【请看 10、12、13、14楼的内容。】
              (那个帖子是问《梦3》的,但是我的这些内容同时适用于2、4、5代。)


              IP属地:陕西8楼2017-05-31 15:10
              收起回复
                另外再说一点:
                【我不赞同“命中”和“回避”这种说法(早在那张图出现之前,我就看到好几个人使用这类说法了)。】
                我觉得更合适的说法(称呼)是【有效伤害】和【无效伤害】。


                IP属地:陕西9楼2017-05-31 15:12
                收起回复
                  不好意思,首先要对楼主说一声抱歉。
                  当时我自己主动过来参与这帖的讨论,
                  但是之后却因故“离席”没有继续(中断了)之后的讨论(有时因为事情多或者心情等原因连续n天没有过来,然后再过来时看到新帖后就忘了之前的旧帖还没有回复的事,就导致……)。
                  然后这次时隔几年,因为某个契机重新看这帖的内容和思考,并且再次回帖,
                  也使得楼主要把之前的部分内容重复再看一遍(如果之前没有中断,而是继续讨论下去,也许就能在当时把这个问题说清楚,不至于像现在这样重复劳动了)。
                  ——————————————————————————————————————————————————
                  时隔几年,我重新看了一下楼主和我自己之前说的内容,一开始有些晕(感觉“绕”和“烧脑”),
                  但经过n段时间后,感觉已经理清了头绪,自认为“大致”搞明白了部分内容(不是全部),
                  并且有了新的结论(不像自己之前说的那么复杂)。
                  所以在此重新回复一次。
                  我这次回复,
                  目前是分为3个方面:
                  1、
                  【针对楼主这帖内容中的一些疑问和看法;】
                  2、
                  【拿出证据(别人的视频,可以公开查看,自己鉴定是有效证据还是作弊性质的东西)证明“存在+4(或者更高的+5)”这种乱数;】
                  3、
                  【给出我自己在这方面的新结论(不全面。目前还不能像楼主这样给出乱数具体几率的计算方式,而是另外的方面)】
                  其中第3点打算等之后再说(根据国际惯例,想先知道楼主对我的疑问和给出的证据方面的看法后,再说自己的观点。以免无意中干扰楼主本来的思路之类)。
                  ——————————————————————————————————————————————————
                  【1】
                  不管是当时,还是现在,
                  我其实都没看懂楼主给出的公式是什么意思…… _| ̄|〇
                  因为我的数学水平欠佳,
                  不知道公式中的“叹号”(!)这个运算符号是什么意思。(而最后的“^”这个符号表示次方(幂)吧?太久没接触了,不敢轻易确定……)
                  所以在连公式是什么意思都看不懂的情况下,
                  也就不能对其“分析”和“鉴定”(是否正确和存在问题、疑点等)了。
                  然后之前没有说明这一点,
                  是因为自己脆弱的玻璃心(心理素质不达标),担心说了后被别人冷嘲热讽之类。_| ̄|〇
                  现在嘛。。。。无所谓了。
                  比起“面子”,求知欲和对真相的欲望更重要。
                  但是,
                  虽然不管是当时还是现在都不能看懂楼主的公式(本身),
                  但我觉得“根据楼主从公式推导出的结论”这个方面,还是可以“给出不同看法(观点)”。
                  所以我这次有了新的结论,
                  但截至目前也不打算收回自己之前回帖时说过的观点。
                  ——————————————————————————————————————————————————
                  然后再说除了公式本身外的一个关键疑问点:
                  【请问按照楼主的方式,
                  在C(0)这种情况下,具体的数值(几率)是多少?】
                  C(0)就是“无乱数”(实际伤害值=理论伤害值),
                  所以应该是“有效值”吧?
                  对于这个,
                  我用自己的方式可以计算出来。
                  但是为了不干扰楼主的思路,还是先等楼主说一下自己的吧!
                  ——因为我和楼主在这方面问题上的分歧很大,所以应该不太可能出现“不谋而合”这种情况吧!
                  所以留些悬念比较好。 :)
                  ——————————————————————————————————————————————————
                  【从梦2的数据量来看,例如佣兵的攻击修正,最大可以取到255(艾尔文战士阶段装备美赛亚剑即可)。而金钱方面,则最大可为(256*256-1)*10=655350。由此可猜想,乱数是不是也存在类似的限制机制。】
                  255和65535是那个时代的游戏(还有之后的SS时代。再之后就不清楚也不确定)是“常见”的2个数值,
                  不算是《梦2》“特别设计”的。
                  因为这些游戏的数据是用16进制存储(所以不管是用动态修改还是静态修改,修改的数值都是16进制),
                  而255就是单字节的16进制最大值(FF)。
                  65535则是双字节的16进制最大值(FFFF)。
                  至于乱数的“上限值”,
                  我目前还不知道(没有这方面的研究成果)。
                  根据之前查到的资料,
                  某些战棋游戏(比如某些代的《火纹》)是用“乱数表”的方式来存储乱数,其范围是“0-99”(也好像是0-100。记不清了。反正应该就是这2者之一— 和前面的255、65535这2个值相差很大)。
                  我《火纹》系列玩得少,
                  也从来没有使用和研究过其特色的“凹点”这种玩法。
                  所以自己对这方面完全没有了解和研究,
                  大概看了一下别人对这方面的科普,勉强算是了解了一点儿皮毛。
                  然后对于《梦战》系列是否也是采用了类似性质的乱数表形式,
                  以我目前的水平,
                  暂时还不能给出明确结论(肯定或者否定。只是“猜测”估计不是——因为《梦战》系列的这种乱数和《火纹》、《机战》这种“常规类战棋游戏”的乱数在性质上有明显不同,所以“估计”不是采用同样的乱数计算方式——反之,如果采用了,那也说得过去——因为那种乱数计算方式也可以用在《梦战》这种情况里,只不过我个人认为不是最佳的方式——有些“繁冗”,不适合《梦战》这种“多可能性结果”的乱数性质)。】
                  ——————————————————————————————————————————————————
                  【按照楼主的方式,
                  乱数(N点随机伤害)只有正(向上浮动),没有负(向下浮动)吗?】
                  比如说有 “C(1)” 却没有“C(-1)”。(或者有,但是你没有列出来?)
                  如果是这样,
                  不说和我的看法不一致,
                  和“主流看法”也不一样啊!
                  “主流看法”都是认为随机(浮动)伤害的范围是±n(n=3或4。认为是3的人最多)吧?
                  其中是有负数(向下浮动)的。
                  ——————————————————————————————————————————————————
                  既然已经这么多字了,
                  那第2部分内容(给出证据证明“存在+4(或者更高的+5)”这种乱数)就新开一楼吧!


                  IP属地:陕西10楼2020-05-10 21:56
                  收起回复
                    证据是别人(疑似国外玩家。如果有人知道或者认识作者,欢迎免费剧透。无任感激)的TAS流程视频里第1关的场景。
                    根据国际惯例,防吞,地址放在楼中楼。
                    考虑到有些人不想或者不方便看视频(比如不想费手机流量),
                    那我在此把其中的内容用文字部分“转述”一下:
                    内容是
                    【AT 24、HP 10的小艾 攻击 (DF 18+20%地形修正)、HP 9的大众脸指挥官。
                    (小艾的DF和大众脸的AT在这个例子里没有作用,所以就不说出来干扰视线了)】
                    战斗结果是大众脸指挥官被秒(伤害值=9)。
                    然后用这个例子中的数据计算一下。
                    其中有个不确定的地方:
                    20%的地形修正加成计算结果是1.2,在这种情况下是按照1还是2来算,截至目前我都不能确定(而这又和乱数的出现概率有关…… 之后有机会和必要的话再说吧)。
                    我n年前就破译了地形修正加成的计算方式,如果不出意外,应该是国内第一个。
                    不过至今没有发主题帖说这个,就是因为我还不能确定在有小数点的情况下是按照哪种方式算——小数点舍去、四舍五入、不足1补足到1( Doi_Doi 说的“向上取整”)还是别的什么方式。
                    在不能确定这点的情况下,
                    那就按照2种可能性分别计算一下。
                    (1)
                    【24-(18+1)=5】
                    理论伤害值是5,而实际伤害值是9,
                    所以乱数就是+4。
                    (2)
                    【24-(18+2)=4】
                    理论伤害值是4,而实际伤害值是9,
                    所以乱数就是+5。
                    这个就有些夸张了……
                    毕竟很多人连+4的乱数都不相信,
                    更别说+5了。
                    所以前者的“可能性”更大(但我还是不会因此就确定这是真相)。
                    以及,
                    顺便得到了“地形加成是1.2的情况下是按照1来算”的可能性更大(但是依然不是“完全”的结果——因为用“小数点舍去”和“四舍五入”2种方式都能得到这个结果,游戏(程序)用的是哪种方式?在不能确定的情况下,如果小数点后的数字≥5时,还是不能确定)
                    按照楼主的计算方式,
                    +4这种乱数的出现概率很小,可以算是“微乎其微”了。
                    我没有录过TAS类视频(也没有这个能力……),没有这方面经验。
                    但是录过别的“普通”类游戏视频。
                    按照我的猜测,
                    录这种“高精尖”视频,
                    一般应该都是要先有理论层面的规划,然后“模拟演练”(类似于打草稿),
                    在模拟测试成功后,才会开始“正式录制”吧?
                    如果是这样,
                    那么这个作者的这种打法至少有过2次——也就是至少出现过2次+4这种乱数(至于2次的间隔时间就不知道了——如果有人认识或者能联系到作者就好了)。
                    而如果要在实战中实践成功,
                    那么作者应该在理论规划层面就“确定”存在+4这种乱数(否则S/L再多次也是白费功夫)。
                    我自己多年前印象里是遇到过一次+4这种乱数(玩自己的修改版时在第2关打敌方步兵佣兵),
                    但因为一闪而过(突然出现,之前完全没有想到,也就不会特别集中精神留意),我也没有留存档和视频等证据。
                    所以我也不能确定是不是自己眼花或者记忆错乱之类,
                    一直“不敢”把这个作为“依据”来说(所以之前回帖时没有提到这点)。
                    后来看到有别的人也说自己遇到过,
                    让我有些怀疑可能是真的。
                    然后现在终于有了这种视频
                    ——而且是日文原版,也可以排除“汉化版有意或无意中修改了原版中的相关数据”这种可能性。
                    ——————————————————————————————————————————————————
                    这次的内容也太多了。
                    所以就先说到这里吧!
                    关于第3部分(我自己在这方面最新的观点,以及针对自己之前说过的内容的补充等方面)就等之后吧!
                    PS:希望对这个话题有兴趣的人能再多一些参与讨论。
                    比如:
                    @老吐槽的
                    我想这也是作为“粉丝”,
                    对这个游戏做出“贡献”的方式之一。


                    IP属地:陕西11楼2020-05-10 21:58
                    收起回复
                      扪心尴尬。
                      这次回帖发表看法前先进行了一下测试(昨晚没有这样是因为时间有限,如果测试的话就不能赶在昨天内回帖了,要多等一天。所以就先回帖和留了“预告”,没有直接说)。
                      然后……
                      之前(昨天)想到的新结论被自己的测试推翻了。。。。 _| ̄|〇
                      还好没有在昨天就发表,否则既浪费自己的时间,也浪费别人的时间。
                      不过运气还算不错。
                      虽然之前的旧结论被推翻了,
                      但是根据测试结果,得到了“修正后”的新结论。
                      (因为这次用的修改器很强大,所以顺便把美剑对回复魔法和过关经验的影响也测试了。这个就放在那个相关帖子里回复)
                      ——————————————————————————————————————————————————
                      先从简单的部分说起吧!
                      虽然有些内容估计很多人应该都知道,
                      但是考虑到这帖的“科普”性质,
                      所以在这里也专门提一下,
                      以及避免万一有人因为对这部分“前置内容”不了解而无法看懂或者误会我之后的“正题”(我和其他人在之前应该都没有说过的新内容——发现)。
                      ——————————————————————————————————————————————————
                      【(理论)伤害值、攻防差、攻击次数的关系】
                      HP和攻击次数“成比例”,在《梦5》的系统教程里已经明确提到了。
                      在2代里也是这样。
                      然后理论伤害值(单纯根据双方最终攻防数值计算出的攻防差,没有受到乱数和攻击方式等方面影响的“纸面值”或者“账面值”)和攻击次数(由HP“换算”得到)也是成比例的。
                      计算公式就是 【理论伤害值=攻防差(注)×(攻击次数×10×100%)】
                      注:
                      公式里攻防差的上限为10,下限为0(到这2个分界点就封顶,超出的部分舍去)。
                      下同。
                      也就是攻击次数是多少(n),
                      理论伤害值就是攻防差的“n*10(n的10倍)% ”。
                      比如指挥官的情况下,
                      满血(10HP)时就是100%的理论伤害值(完全攻击输出,没有衰减);
                      9HP和8HP时都是90%的理论伤害值;
                      ……
                      1HP时是50%的理论伤害值(下限值,相比满血时的攻击输出减半)。
                      或者简单一些,
                      不按照百分比的算法,按 n/10 来算。
                      也就是 理论伤害值=攻防差×攻击次数÷10
                      或者为了方便计算,
                      再简单一些:理论伤害值=攻防差×0.攻击次数(把攻击次数这个值放在小数点后)
                      至于说出现小数点的情况……
                      因为实际伤害值会受到乱数、攻击方式、攻击位置、攻击状态(是否被催眠)、先后手影响(都是不一定有),
                      所以一般情况下纠结这个意义不大
                      ——就算知道了,得到的结果也不一定就是按照计算出的这个数值,无法“事先(战前)预测实际伤害(准确值而非估值)”,
                      虽然对我这种在有些情况下需要追求无乱数的玩法,有时候会有影响,
                      但是在目前自己没有能力解答的情况下,也只能放弃寻找真相,留待以后有人解决。
                      这个应该很多人都知道,也比较好理解。
                      只是需要留意的1点是
                      指挥官、佣兵、召唤兽的攻击次数计算方式不一样(现在可以确定的是指挥官和佣兵不同。然后召唤兽是和指挥官还是佣兵相同我还暂不能确定,只能猜测是和指挥官相同)。
                      ——————————————————————————————————————————————————
                      【乱数和攻击次数的关系】
                      【乱数和攻击次数成正比关系(攻击次数越多,乱数的出现几率越高。具体几率=1攻击次数的概率×总攻击次数)。】
                      这点和之前说的那点,
                      在楼主引用的资料和他的公式那楼里算是剧透了,
                      只不过没有明说,需要“推导”后“明文化”(明确指出)。
                      所以我就自作主张地做了这种事。
                      不知道是否画蛇添足了。
                      然后除了给“万一不知道或者看了引用的那部分资料和楼主的3楼内容后还是没有看出这2点”的人剧透一下外,
                      我还通过这个注意到了一件事,想说一下:
                      【既然乱数和攻击次数成正比关系(攻击次数越多,乱数的出现几率越高),
                      那么反过来,
                      【如果想降低乱数出现概率(比如追求无乱数或者尽可能低乱数的玩法),
                      主动降低攻击次数(HP)也是一种办法了???
                      (比如受伤后故意不回复HP)】
                      呃,
                      不过这样的话……
                      有些因小失大的感觉(因为这样就会大大降低杀敌速度和过关时间…… 吧?而如果是玩魔法战,不用担心这方面的话,魔法伤害本身就是定值,没有乱数。“特意”这样做也没意义)。
                      我想“可能”有用的场合(正常玩法,而非故意自虐之类情况下),
                      就在于已经有人可以修改或者剥离HP和攻击次数的绑定关系。
                      那么……
                      如果不能(没有技术做到)“直接去除伤害随机性”的情况下,
                      可以通过“降低攻击次数而不影响HP的方式”来人为“间接降低乱数出现率”,
                      对于追求全程或者流程里尽可能无乱数或者低乱数的玩法,
                      这样也算是一种“曲线解决问题”的方式吧……
                      (当然也有副作用和需要考虑的因此产生的问题——如果和HP不再绑定,那如何确定攻击次数?是始终固定不变,还是按照新的方式动态变化?等等)
                      反正我自己不具备这种技术,
                      暂时也不需要找别人来帮忙制作这种版本,所以目前也不想在这个问题上考虑太多太细。
                      只不过因为这次的这个话题,
                      脑筋转弯后“碰巧”想到了这里,就发出来说一下——也许有别人能用得上(这种思路)。
                      ——————————————————————————————————————————————————
                      字数太多。
                      那剩下的部分就再开一楼吧!


                      IP属地:陕西13楼2020-05-12 00:03
                      回复
                        【按照楼主的观点,
                        似乎是认为“乱数的出现概率在任何情况下都恒定(在攻击次数等其他影响因素不变的情况下)?】
                        而我在之前(几年前)第一次看到和回帖时就表达了不同看法。
                        当时的分歧点在于:
                        【我根据自己的体验(破译地形修正时的大量S/L测试和别人在第1关S/L利昂时的感受剧透),
                        认为“在不同攻防差情况下的乱数出现几率是不同(有区别)的”。】
                        而楼主则认为乱数的出现概率和攻防差无关(不受其影响)。
                        ——————————————————————————————————————————————————
                        然后昨天的时候,
                        我这次重看这帖时思索出的新结论和之前大体相同,只不过有些变化。
                        我昨天得出的结论是(虽然已经被自己否定了,但觉得还是说出来吧!也许运气好的话会对别人产生一些启发或者灵感之类):
                        (1)
                        【伤害乱数分为【强制增伤】、【强制减伤】、【浮动伤害】3种。】
                        其中的
                        【“强制增伤”就是引用资料里说的“绝对命中”,
                        触发条件是攻防差≤0(理论伤害值=0,无伤)的情况下。
                        乱数范围为 +n(以前大部分人认为是n=3,现在则应该认为是4。但也有可能还存在更高的上限。所以还不能完全确定的情况下,出于严谨考虑,就还是用n表示。另外,也可以看作是 ±n 。因为这种情况下,根据触发条件,-n的情况就是 0-n ,和0的结果(无乱数)重合,所以出于方便对比考虑就去除了——而实际上,根据之后给出的乱数出现规律,最有可能的情况还是 ±n )】
                        【“强制减伤”就是引用资料里说的“绝对回避”,
                        触发条件是攻防差≥10(理论伤害值=10,击杀)的情况下。
                        乱数范围为 -n(以前大部分人认为是n=3,现在则应该认为是4。但也有可能还存在更高的上限。所以还不能完全确定的情况下,出于严谨考虑,就还是用n表示。另外,也可以看作是 10±n 。因为这种情况下,根据触发条件,10+n的情况就是 超过了10这个封顶值,和10的结果(无乱数)重合,所以出于方便对比考虑就去除了——而实际上,根据之后给出的乱数出现规律,最有可能的情况还是 ±n )】
                        【“浮动伤害”则是最常见的情况,
                        触发条件是攻防差处于1-9的范围内这种情况下。
                        乱数范围为 ±n 。】
                        ——————————————————————————————————————————————————
                        然后前面2种可以合并为一种:【绝对乱数】(参考“绝对命中”和“绝对回避”这2种名称起的名字)
                        后者也可以改名为【附加乱数】。
                        【“绝对乱数”和攻防差无关
                        (不受其影响,因为超过了其“边界值”,
                        就转为使用新的计算方式——【分别以0和10为“起点”,单向(正向/向上或者负向/向下出现几种可能的乱数值】 ),
                        每种乱数值的出现率是资料里的2%和楼主公式里得出的数值(如果公式无误的情况下)。】
                        所以楼主认为乱数出现概率和攻防差无关,
                        在这种情况下我和楼主的看法一致。
                        ——————————————————————————————————————————————————
                        然后区别在于:
                        【我认为除了前面2种情况(攻防差处于那2种范围时)外,
                        还有另外的乱数情况。】
                        【“附加乱数”
                        是指【附加在理论伤害值(攻防差)基础上(以其为“中点”,双向(正向和负向/上下)浮动±n)的乱数值。】
                        这种情况下,
                        乱数出现概率是受攻防差影响的。
                        具体为:
                        【理论伤害值和理论伤害值±1的出现概率最高(非常接近)、其次是±2、±3……】
                        然后可能有人就会觉得:
                        这个和前面的那种一样,都是乱数的出现概率由高到低排列是±1、±2、±3……
                        ——————————————————————————————————————————————————
                        然而一个明显(重大)的区别在于:
                        【按照大部分人的实际体验,
                        在S/L利昂那种攻防差≤0(理论伤害值=0,无伤)的情况下,
                        +1的概率都是偶尔才出现,+2的情况就更少得多了,+3就是“罕见”了(楼主的公式和因此得出的结论也是这样)。】
                        【而我之前在破译地形修正时,
                        首先做的事情是进行大量S/L测试,想以此找出乱数出现的规律。
                        否则如果得出的结果不能确定是无乱数的结果或者和无乱数结果的误差值很小(±1),
                        那么很难确定自己得出的结论是否正确(经得起验证)。
                        然后我进行S/L测试时,
                        选择的对象就是攻防差处于1-9的范围内这种情况。
                        (因为这样出现的结果几乎每次都会出现变化,如果不出现变化是好事。更容易找出规律)】
                        然后我找出的乱数出现规律就是:
                        【理论伤害值和理论伤害值±1的出现概率最高(非常接近)、其次是±2、±3……】
                        当时我虽然找出了这个规律并且因此成功破译了地形修正加成的方式,
                        但是我并不知道这种规律是什么性质、叫什么名字(数学或者别的学科里的“正式名称(学名)”)。
                        后来有一次看到那个“S/L大帝”在一个帖子里也提到了这种乱数出现规律,
                        并给出了相应的名称:正态分布。
                        (据他说自己是悉尼大学的精算专业。而作为文化程度不高+数学知识不足的我,是第一次看到和知道这个词……)
                        对了。
                        前面的好像和我要说的“区别”没有关系(但是和之后要说的内容——我今天根据测试的结果得出的“修正版”结论有关,所以也不算是白打字)。
                        区别在于
                        【我进行的这些S/L测试(攻防差处于1-9的范围内这种情况),
                        ±1的出现概率【很高】(前面说到了,和无乱数情况下的值几率接近。这也是导致我无法“准确得出”一些需要无乱数情况下的值才能给出结论的原因——因为大量S/L样本的情况下,无乱数的值和±1的值都很高并且接近,这3种值里我无法准确“断定”其中哪个值才是“真正的无乱数值”)。
                        而±2的出现概率【比较高】,
                        ±3的出现概率【不高,但也不是“特别低”】。
                        不说和楼主公式里得出的那种±2、±3的几率相差多大了,
                        就和很多人自己亲身体验的S/L利昂时那种±2、±3的超低概率就有很大区别。
                        【而之所以会有这种区别,
                        原因就在于(我认为)【S/L测试样本中的攻防差这个值不同(在攻击次数等其他影响条件相同的情况下)】。】
                        如果说我之前的大量S/L是n年前的事了,可能会有记忆偏差。
                        那么今天我又特意测试了一下,
                        结果大致相同(只不过没有自己之前印象里的那么“变动频繁”——概率相对低一些,但还是比攻防差≤0(理论伤害值=0,无伤)的情况下要低得多。具体举例的话,我在不到20次的S/L里,出现了3、4次的±3情况——这差别大了吧?)
                        ——————————————————————————————————————————————————
                        时间和字数原因,
                        我现在直接给出今天测试后得出的最新修正版结论。
                        如果之后有必要,再补充说明。
                        【乱数的出现概率情况只有1种(而不是我之前认为的3种或2种),
                        每种乱数值的出现概率高低和攻防差相关
                        ——在不同的攻防差情况下,每种乱数值的出现概率都是不同(会发生变化)的。】
                        所以,
                        虽然我现在还是不能看懂楼主的公式,
                        但是那种“用一个公式计算出每种乱数的出现概率(固定不变的值)”很明显和我前面的结论冲突。
                        所以我不认同楼主的公式(不一定是“错”,但至少是“不完整”的)和因此推导出的结论。】
                        ——————————————————————————————————————————————————
                        然后还有关键的一个结论:
                        【乱数值的出现概率和攻防差的关系是,
                        在全部攻防差范围(0-10)的中位数(5)时出现概率最高(所有乱数值(±1、±2、±3……)的出现率都是最高),
                        和中位数(5)的距离成反比(离中位数5的距离越远(差值越大),所有乱数值的出现率越低)。】
                        【这个规律应该也符合“正态分布”的性质——和我之前观察出的乱数规律一致。】
                        然后有2个现成的例子可以用这种结论解释:
                        (1)
                        【为什么在2种攻防差边界值(攻防差≤0和攻防差≥10)的情况下,
                        乱数的出现概率会“变得”很低(±2和±3的概率一般都要S/L很多次,±4就更不用说了);】
                        (2)
                        【在我之前拿出的那个视频例子里,
                        攻防差=5(因为地形修正原因,暂时只能说这种可能性最大)=中位值,
                        所以,
                        【在这种情况下出现“极端(上限)乱数值”,也就是+4的概率】【处于】【最大值】
                        ——也就是,
                        【理论上强制出现想要的这种结果所需要的S/L次数最少】。
                        如果那个TAS作者是“事先知道这点”,
                        所以才“特意”规划出了这种情况下的S/L。
                        那真是太厉害了……
                        比之前想像中的更厉害……
                        ——————————————————————————————————————————————————
                        好了。
                        其实还有一些内容(在进行S/L测试时发现的一些现象)。
                        因为时间和字数原因,这次就到这里吧!


                        IP属地:陕西14楼2020-05-12 00:05
                        收起回复
                          【前言】
                          首先要针对上次的回帖中提到的时间进行一下补充说明:
                          昨晚紧赶慢赶,想赶在昨天内(晚上12点前)把帖子回了。
                          结果还是超出了几分钟时间,导致……
                          上次的回帖中提到的“今天”变成了昨天,“昨天”变成了“前天”(从相关楼层显示的发表时间算)。
                          虽然不是什么大问题,但是对于“追求严谨”的我来说还是一个很大的瑕疵。>_<
                          而贴吧又不能编辑帖子(昨晚因为要赶快回完帖子下线,所以没有对其中内容修改后再发表)。
                          只能就这样放任了。。。。
                          在此说明一下作为记录,
                          是因为我比较看重“纪念意义”,现在还能记得这些事(是在哪天做的测试和得出的相关结论)。
                          但是隔上一段时间或者年后,恐怕就……
                          所以用这种方式,以后再重看这帖时也许还能勾起一些相关回忆。
                          然后就是和这次的回帖相关的事。
                          之前的回帖内容没想到打了那么多字,以为已经把“大部分(几乎全部)”内容都说完了。
                          然而睡了一觉醒来后重新理清头绪,发现还有不少(方面的)内容…… _| ̄|〇
                          所以,
                          这次的内容(字数)也会比较多(纯理论上悲观估计依然要分楼发……),而且也有新的“重量级干货”(不止1种),
                          建议在有足够时间(而不是“碎片时间”)和理性状态(否则可能会因为字数太多而看得烦躁和影响心情……)的情况下看。
                          ——————————————————————————————————————————————————
                          【验证我的理论的简单测试方式】
                          这个本来是打算在上次回帖中就说的。
                          但因为时间和字数原因,就放在了这次。
                          之前说了那么多“观(论)点”,
                          可能有部分人不相信或者半信半疑(不确定是否应该相信),
                          根据国际惯例,要用“论据”来“论证”相关论点。
                          然后我自己“私下里”的测试结果作为论据,可能说服力不够(对部分人来说)。
                          所以我觉得可以把自己的测试方式公布出来,
                          让不相信的人自己进行测试(当然其他人也可以把自己认为更合适的测试方式给我…… 们大家免费剧透一下,节省大家的时间和提升测试效率)。
                          方法很简单:
                          不需要修改数据,
                          只需要
                          【在第1关和第3关分别用我方的初级步兵和初级枪兵在指挥范围外(并且没有地形加成的地点)交战(或者不带兵,魅惑敌方后让敌方佣兵交战),
                          多次S/L观察结果就能知道了。】
                          因为敌我双方初级步兵的攻防数值相同(都是A20、D14),
                          在指挥范围外无修正和地形加成的情况下,
                          双方给予对方的理论伤害值相同(都是6),略微大于攻防差范围(0-10)的中位数5。
                          而2个初级枪兵的攻防数值基本相同(我方是A18、D18,敌方是A18、D17。只是DF相差1点。如果要追求完全相同,那可以用魅惑让敌方枪兵交战)。
                          在指挥范围外无修正和地形加成的情况下,
                          双方给予对方的理论伤害值大致相同(分别是1和0),处于攻防差范围(0-10)的边界值和附近。
                          如果觉得佣兵之间的战斗因为攻击方式和战斗中损失HP导致的攻击次数衰减问题会影响结果,
                          那么在第1关让小艾和敌方大众脸指挥官进行交战也可以(不过这就需要用修改器改能力数据,以方便测试不同攻防差下的结果)。
                          我在昨天和今天都进行了这几种测试。
                          得到的结果是佣兵之间的战斗(单纯指这次提到的几种佣兵之间战斗的情况。像飞兵佣兵对战地面佣兵这种情况,在之后会专门另外阐述)和指挥官之间的战斗结果都符合我的理论(差别不大)。
                          不信的人可以自己试试
                          ——因为《梦战》的乱数导致出现的结果可能性有多种,
                          所以需要的S/L测试样本数量(测试次数)比较大才能“有说服力”。(所以不要只是S/L了3、5次后就用自己看到的结果说我的理论错误。谢谢)
                          ——————————————————————————————————————————————————
                          【实际伤害值】
                          之前一直在说“理论伤害值”,
                          可能很多“不关心这些理论方面的东西,只关心对实战方面是否有影响和帮助”的玩家更关心的是“实际伤害值”方面的内容(怎么计算等)。
                          因为之前曾经也提到过,
                          实际伤害值会受到多种因素影响,然后要“具体问题(情况)具体分析”。
                          要解释这方面内容,
                          需要先了解几个概念(我自己提出来的,不是“官方”或者“公认”的内容,这点请务必注意——在看我的内容时,请不要“直接照单全收”。最好能自己思考判断一下,不要“偏听偏信”):
                          【“有效攻击”和“有效攻击次数”;】
                          【“无效攻击”和“无效攻击次数”。】
                          【“总攻击次数”。】
                          (我之所以在这里坚持自己之前提出的这种说法(起的名称),
                          而不是很多人更习惯、在引用资料里官方人员也用到的“命中”和“回避”这2个词,
                          在之后和别的游戏进行对比时会说明。请不要着急反驳)
                          【“有效攻击”指的是“能够造成伤害(实际产生了伤害)的攻击”,
                          相应的后面加上“次数”2个字后是什么意思应该不用解释了(因为后面还有不少内容,懒得打字。如果有人不知道,也可以问,我用回答的形式说一下,不占用主楼的篇幅了);】
                          【“无效攻击”指的是“无法(没有)造成伤害的攻击”。
                          “无效攻击次数”请参看上面的一段话(节省篇幅,就不复制粘贴了)。】
                          【“总攻击次数”指的是“有效攻击次数”和“无效攻击次数”之和(相加的值)。】
                          这个词一般只在涉及“有(无)效攻击次数”时才会使用,
                          其他场合一般都会直接称为“攻击次数”(因为2者在没有区分是“有效”还是“无效”攻击次数的情况下是一回事)。
                          如果能看明白上面这部分内容(看不明白的话,可以把上面的“有效攻击”替换为“命中”,“无效攻击”替换为“回避”。还是不懂的话,可以说一下具体哪部分不懂,我可以针对性解释——或者,让别的“看懂了我的意思并且语言表达能力比我强”的人来进行解释),
                          就好理解我下面,
                          不,是“要说的下面”(为了避免误会,特此免费注明)的内容了。
                          根据国际惯例,
                          先从最简单(基本)的情况说起
                          ——也就是排除掉那些影响因素,
                          “假定双方都是完全攻击输出(从进入战斗到结束全程都没有攻击次数衰减)”的情况开始。
                          先简单阐述一下实际伤害值和理论伤害值之间的关系(只适用于上面说的“简单情况”,有攻击次数衰减等情况影响下的需要另外分析,所以特别注明一下。即使排除掉那些影响因素外,也不是只有这2者+乱数3种要素。还有攻击次数):
                          【实际伤害值=有效攻击次数】
                          【有效攻击次数≤总攻击次数】
                          【实际伤害值≤总攻击次数;】
                          【理论伤害值±n(乱数值)=有效攻击次数≤总攻击次数】
                          (在满足最后的前提条件下,前面的等式才能成立)
                          【实际伤害值=理论伤害值±n(乱数值)=有效攻击次数≤总攻击次数】
                          (同样是在满足最后的前提条件下,前面的等式才能成立
                          ——否则,超出(超过总攻击次数)的部分舍去(无效)——因为之前单独列出了“有效攻击次数≤(总)攻击次数”这条规则。
                          至于“为什么”这样,
                          我在之后会针对这点进行理论说明——包括这次和之前、之后我给出的观点和理论,都是我个人的主观看法(进行的测试结果则应该都算是客观的…… 吧?),不一定正确。如果有不同意见,欢迎指出和一起探讨)
                          之后下面的n部分内容依然是和实际伤害值有关系,
                          所以不要着急提裤子走开啊! :)
                          ——————————————————————————————————————————————————
                          因为后面一部分内容比较多,
                          所以为了阅读方便,另开一楼发。
                          (免费提醒:剩下一楼的内容属于“未完待续”——之后剩下的内容大概还要比这2楼加起来的内容(字数)还要多……
                          敬请无条件做好心理准备——和时间)


                          IP属地:陕西15楼2020-05-12 23:51
                          回复
                            【乱数的性质、作用、实现方式】
                            这里说的“乱数”,
                            是指“伤害乱数”(2代除此之外,还有“行动乱数”。之后的作品还有别的乱数)。
                            因为这帖截至目前基本讨论的都是2代的伤害乱数,
                            所以为了自己打字和别人阅读方便,之后如果没有额外注明,提到的“乱数”都是指“伤害乱数”。
                            (之前那么多次之所以一直没有提到这点,是因为就算不说,一般也不会引起歧义。
                            而这部分内容的标题比较“大”,所以觉得有必要特别注明一下——自己这里只是阐述“其中一种类型”乱数的情况,而非“全部类型”的乱数)
                            然后这里说的“作用”,
                            是指“游戏中的作用(产生的效果)”,不是指“对玩家的作用(好处)”。
                            【CPU在运行程序时,是以二进制的形式进行的。
                            所以编程中很多时候也会用到这个特性。】
                            然后和这里的关系是:
                            如果用0和1(二进制中的2个数字——只有这2个数字)分别来表示上面提到的2种类型(“有效攻击”和“无效攻击”),
                            那就很“简单方便”了(从写程序的角度——猜测,因为我自己并不懂编程——学过,但是学不懂。。。。_| ̄|〇 所以对这方面知识是“略知一二”,但稍微深入一些就不行了。然后就喜欢“在只知皮毛的情况下妄加揣测” ^^b )。
                            比如用0表示“无效攻击”,
                            用1表示“有效攻击”(在程序中的写法,一般估计是用常用的“True”和“False”表示)。
                            那这和乱数有什么关系呢?
                            先看一下“假设无乱数存在”会是什么样子:
                            把之前理论伤害值和攻击次数关系中的乱数那个参数去掉(因为现在是“无乱数”情况),
                            那么得到的就是
                            【理论伤害值=有效攻击次数≤总攻击次数】
                            也就是:
                            【理论伤害值是多少(假设为m),
                            攻击次数是多少(假设为n),
                            实际伤害值就是取2者之中小的那个值(m和n进行比对,取其中小的那个值)。】
                            比如理论伤害值是10,攻击次数是5,那么实际伤害值就是5;
                            反过来的话,理论伤害值是5,攻击次数是10,那么实际伤害值依然是5。
                            不知道这部分内容你们看明白了没?
                            那么继续看看加入乱数后会是什么情况:
                            同样是按照之前举的2个例子(理论伤害值和攻击次数分别是10和5的情况),
                            那么可能出现的结果就不再是固定值,
                            而是“多种可能的值”
                            ——那“取值范围”呢?
                            除了必须≤攻击次数这条外,
                            还有什么呢?
                            对。
                            还有“不能超出乱数范围上下限(边界值)”。
                            也就是,
                            【乱数的存在和范围(上下限)】【影响和决定了】【最终(实际)伤害值的取值范围(边界)】
                            ——和【攻击次数】这个“要素”【共同影响和决定】。
                            如果看了这部分内容觉得“没什么意思”(没有想像中和“期待”(如果有的话)地那样惊喜),
                            那我也没办法。
                            反正习惯了自娱自乐,
                            那我就“自顾自”地继续下面的内容。
                            那么,
                            【乱数这个要素“具体”是怎样(用什么方式)影响实际伤害值的“变化”(浮动)呢?
                            ——由“固定值”变化为“不定值”。】
                            如果还有人记得我之前提到的“有效攻击次数”和“无效攻击次数”这2个概念(或者按照很多人习惯的“命中”和“回避”这2个词)的话,
                            那么下面的内容就好理解了(纯理论上乐观估计。因为我对自己的语言表达能力扪心自卑,所以对“解释说明”的效果方面也不敢乐观……):
                            同样再次先看看无乱数(也就是“没有乱数这个因素影响”)的情况:
                            【理论伤害值=有效攻击次数≤总攻击次数】
                            这个公式在上次阐述无乱数情况下时已经提到了。
                            然后我现在复制粘贴过来,
                            有人注意到“关键点”吗?
                            【去除最后的那个“前提”的话,
                            就是【理论伤害值=有效攻击次数】,
                            也就是
                            “理论伤害值是多少,有效攻击次数就是多少(全部攻击次数都是有效——直到“用完”攻击次数)”。
                            那加上乱数的话呢?
                            同样把之前说过的公式复制粘贴一下:
                            【理论伤害值±n(乱数值)=有效攻击次数≤(总)攻击次数】
                            那么可以发现:
                            这个时候,
                            【理论伤害值“不一定等于”(想用数学符号表示,但不知道应该用哪个…… ≈这个不严谨,因为±4这么大的差距貌似不能算是了。而且如果把0也算作乱数中的一种的话,那么也有可能等于)有效攻击次数】。
                            那么
                            【多出或者减少(因为乱数影响)的“有效攻击次数”变成什么(或者由什么变成)了呢?】
                            答案就是
                            【由“有效攻击次数”变成了“无效攻击次数”——或者反过来(前者是负向的乱数(-n),后者是正向的乱数(+n)。】
                            所以,
                            我的结论就是(终于到这里了…… 不容易啊!T_T ——我和你们都是……)
                            【乱数的实现方式就是【改变(转换)】【单次的攻击次数】【是否有效的状态】(这里如果用“命中”和“回避”这种说法就没有这样方便了。】
                            具体来说,
                            【±4的乱数范围】【就表示】【最多】【有4次的攻击次数】【有可能】【被改变状态】(无效变为有效,或者有效变为无效)。
                            (具体的“被改变几率”就是另外的话题了
                            ——纯理论上乐观估计应该有现成的数学或者概率论里面的现成办法可以算出相应概率——就算可以这样,也不一定对。
                            因为根据我目前的测试结果和结论,这个游戏“表面上”(看上去像是)在乱数概率方面采用了正态分布的方式,但实际上做了一些额外的调整——我目前的猜测是用“权重”的方式。
                            而且……
                            我目前并不懂这方面的数学和概率论知识,所以自己是没办法做这种事了。
                            如果以后有钱的话,想找一个(些)美女家教来补一下这方面的知识。不过这也是不知道要等多长时间的“以后”了…… T_T )
                            ——————————————————————————————————————————————————
                            【次回预告】
                            呼……
                            虽然开始正式打字之前,
                            就“料想”到这次的内容“依然”会很多,
                            需要花不少时间打很多字。
                            但最终写到这里时发现……
                            还是大大超过了自己的预计。_| ̄|〇
                            下面还有“至少一半”的内容
                            (这个“一半”指的是我这次本来计划一次性发表的全部内容的一半。
                            单独拿出来说的话,可能比这次已经发表的这些内容还要多……
                            趁着四周没人,你们可以赤果果地暗中脑补一下可能会是多长的篇幅、有多少字数、看完要花多少时间……)
                            因为时间和疲劳等原因,
                            以及最重要的“这次开始想有意把一次性可以发完的内容分几次(不是分多楼,而是分多天)发”。
                            因为之前几次都是打字打了很多,
                            也耗费了很多时间精力(包括勉强自己进行讨厌的大量S/L测试这种事)和倾注了很多心血(特别是昨天,不,是今天凌晨发表的内容——因为过了0点……),
                            “以为”会对别人有一些作用和“引起更多人兴趣从而参与讨论”,
                            没想到……
                            反倒比之前的情况更惨。
                            这次的内容相比之前更“晦涩”,
                            估计也就更……
                            在此我也不想“求”别人“捧场”之类的,
                            但是也不想自己辛辛苦苦的劳动以及“劳动成果”在没有多少人看到的情况下就沉下去,
                            然后“暗无天日”,不知道下一个人看到会是什么时候这种情况。
                            所以我决定从这次开始,
                            就把本打算想好了一次发的内容分成多次(多天)发,
                            这样每次补充新的内容(回帖)时就会把这个帖子顶一次,能增加这个帖子留在首页的时间和被更多人看到的机会。
                            然后这次已经想好、本来打算一次性发,
                            但是决定下次(不一定是明天)再发的内容大概有以下几方面(以最终发表时的内容为准。因为我的思考内容随时可能发生变化——比如上次发表时自己推翻了自己之前的结论,然后今天又再一次推翻了自己之前的一种结论,再次得出“2次新修正版”结论……):
                            (1)
                            【实际伤害值无法突破(超过)攻击次数的原因】
                            (2)
                            【乱数范围的上限不太可能是±5(或者更高)的理论层面分析】
                            (3)
                            【乱数的生命周期】
                            (4)
                            【不同情况下不同乱数值的权重】
                            (5)
                            【“战斗单位”和“战场单位”】
                            大致就是这样吧!
                            目前“脑内草稿”估计其中每部分内容的字数都不会少……
                            所以可能要分2次甚至3次才能发完(然后这期间可能又会思考出新的内容……)。
                            我自己是希望能早些发完这些内容。
                            毕竟这样自己就算“卸下一个担子”了。
                            以及,
                            “让自己的劳动成果早日成为对《梦战》系列的贡献”和针对某种论调的“论据”之一
                            ——很多人(既包括黑子、无知路人、也包括一些妄自菲薄的“伪粉丝”)
                            认为《梦战》系列在系统方面的“深度”不够,
                            只会拿难度和外表(7元的人设)说事,
                            认为《梦战》系列作为战棋游戏在系统深度等方面无法和《皇骑》、《火纹》等“真·神作”“相提并论”,
                            我觉得自己这次的成果有资格作为反驳这种论调的论据之一。
                            希望自己的这部分话没有引起某些“资深(骨灰级)战棋粉”(特别是某些其他战棋游戏的“无脑吹”这种类型)不快和引起吵架之类。
                            呵呵。


                            IP属地:陕西16楼2020-05-12 23:59
                            收起回复
                              挖坟说一句吧 乱数3确实见过 但是和地形有一定关系 md第一关利昂打对面枪兵的时候 大部分乱数1是有的
                              如果利昂的地方是山地 那么乱数2的概率会提升 利昂在水中 那么乱数3的概率会大大提升 不知道为啥


                              IP属地:浙江18楼2020-07-01 16:30
                              回复