Heroes3中随机事件(如士气高昂、石化等等)的出现概率测试

  在H3中有着数量众多的随机事件,其出现概率一般都有官方数据,例如蜥蜴石化的概率是20%,矮人战士抗魔的概率是40%等等。但是在实战中,却经常出现与官方数据不符的情况,比方说,有时候蜥蜴会连续数次石化敌人,这就让人对官方数据的可靠性产生了怀疑。以下的测试就是为了检验官方数据的可靠性而做的。

关于士气的测试报告

zealotcq

  好像没有人知道一格士气到底能有多少概率出现士气高昂至少没人回贴告诉我,所以我就自己作了一次测试。(:实际上,游戏本身的Readme文件有给出士气对二次行动的影响概率,+1、+2、+3的士气,二次行动的概率分别是4.2%、8.3%、12.5%)

  方法是这样的:先把两个盔甲特技英雄tazar和mephala升到868段(假设你已经看过了阿斌前辈的无限升级一文),这样他们能使任何攻击都是伤一点,然后让他们各带4000农民对砍。

  第一次是士气tazar +1 vs mephala -1,因为tazar士气高昂的回合mephala 死3个,而melphala士气低落的回合,melphala 死一个,其他回合mephala死2个,又因为可以假设+1士气高昂和-1士气低落的概率大致相当,这样就可以保证mephala死光的时候,是2000个回合。而这时tazar所剩的农民数量就是士气高昂的次数,证明从略。

  本来我的设想是用quick combat的,这样的话,做几万次的测试也能很快完成。但是很可惜游戏的设计显然没有考虑到盔甲特技100%的情况,所以,用quick combat的结果明显不对,结果只好进入战斗后用auto,然后我就去吃饭了,回来的时候还有一千五六百的农民。我等啊等啊等,终于到mephala还有一千只的时候,我终于忍不住retreat了。这时tazar 还有1063只,结果是63/1500回合=4.2%。

  然后我又做了+2 VS -2 (1000回合),+3 VS -2(1000回合),之所以是-2,是因为做地图时的失误,我没法把对方的士气降到-2以下,我又不想再去升868段,所以,将就着用用吧,而且这也只对总的回合数有很小的影响,结果分别是91/1000=9.1%,115/1000=11.5%。

  然后当士气上升到+4,+5时,出现了奇怪的变化。2000回合的结果都是239,而且比率和+3也非常接近,因为是睡觉的时候做的,我怕不准,就又做了+6 vs -2,这一次我是看着他们一回合一回合的打的, 所以只看了1000回合,结果是114,可见果然是不变了。

  所以最后的结论是,士气+1,高昂概率4%-5%,士气+2,高昂概率9%-10%,士气+3以上,11%-12%。单位是:次数/回合·部队。

  可能有人要问,这到底有什么用呢。简单来说,就是个人兴趣,实用是不大的。不过用途之一是可以用来评估宝物,譬如攻击+1和士气+1的比较。士气加1,明显就是加了5%*100%的当前伤害,无视对手的实力;而攻击加1,就和对手防御有直接关系,设X=我方攻击-对手防御
  X=0,也是加5%伤害,
  X>0, <5%的伤害
  X<-20, >5%的伤害
  X=-20, 5%的伤害
  0>X>-20, <5%的伤害

  所以结果很出乎意料,除了少数情况外,比如很早遭遇7级兵或超强英雄,+1士气的宝物都比+1攻击好。而且更有趣的是,也能推出领导术和攻击术的效果是相当的,都是+5%,不过攻击在X>60之前一直有效,而士气只要超过+3,就没用了。

关于蜥蜴的石化概率

DarkRain

  测试方法和从前zealotcq测试士气概率的方法相近。我方与电脑英雄均为防御特技英雄,用FPE将等级改至120级,这样任何攻击都只能造成1点伤害。我方部队是单组50巨蜥,电脑英雄的部队也只有一组,几次测试中换了不同的兵种,保证总HP是1000点(如:100戟兵,4大天使……)。开始战斗后,让电脑自动,反正最后消灭对手部队时巨蜥的攻击次数肯定是1000次,战斗中只要盯着信息栏看,统计石化出现的次数即可。

  以下是几次测试结果:

    对方部队   石化概率
     戟兵     19.5%
     大天使     19.3%
     牛头王     19.0%
    长角恶魔    19.8%

  这几个概率都很接近20%,不过没有达到的,有点意外。测试过程中,连续3次石化是常有的事,连续4次、5次石化的极端情况也有出现过;反过来,连续20几次不石化也非常常见。

初步结论

  从测试来看,官方数据是基本可靠的,NWC的随机数生成器可以保证在大量实例中事件的实际概率趋近于理论数值,在这一点上程序是没有Bug的。但是随机数生成器的算法不尽合理,导致小概率事件有时会连续出现,程序有改进的必要。


本站内容为署名作者原创,未标注作者的为版主原创。转载请务必注明来源于英雄世界,并注明作者。