广东药学院论坛|广药|广东药学院bbs|广州药学院|广东药学院中山校区|大学城,赤岗,中山校区,毕业就业,新生,,医药
广东药学院论坛
 
打印

骑士攻击回合相关(精确分析篇)

骑士攻击回合相关(精确分析篇)

我一直想很彻底的分析这个宠物游戏,但最近我一直有一个难点不知道怎么解决,加上最近比较忙,所以分析进度搁置了很长时间

这个难题,我考虑了很久,还是没有找到完整的办法精确分析出来,进展一直不大
趁这次技术大赛,我决定先共享一部分最基本的分析结果(还是我的老风格,希望能够对其他人进一步的研究提供理论或数据基础)

一直有人说(我也是这么认为的),这个宠物游戏其实就是一个纯鼠标点击的游戏,
所以这个东西实际上就是考虑鼠标点击的效果,那么对杀怪来说,一个最基本最基本的问题就是杀一个怪到底需要点击多少次鼠标?

在我以前提到的计算文件中,主要的是演算了一下宠物加了属性后攻击怪物时的攻防效果,在骑士精确分析篇里,提到了一点,就是先暂时简单的用“怪物血/期望攻击伤害”取代“期望攻击次数”,但这其实是不准确的

举个例子:如果一个赌徒在扔一个骰子(6面的那种),要平均扔多少次,其点子和大于等于7?
按照直接除以“每次期望值”来算,应该是 7/((1+2+3+4+5+6)/6)=2,但实际上肯定应该大于2次(因为至少要扔2次,也有可能扔3次,扔4次。。甚至可能要扔7次)

而宠物打怪也是如此,实际上有峰值,有谷值,大家肯定也有这样的体会,有时候可以秒杀,有时候偏偏剩下一点血皮,却消耗多一次鼠标点击。所以如果能够精确的计算出某种状态下的骑士杀一个特定的怪,平均需要多少次攻击的话,那么很多后续的推论就有了精确且坚实的理论基础了

骑士的具体攻防计算我就不在这里重复说明了,我们把注意力集中在伤害的计算公式上

从最新的代码来看,骑士的具体伤害公式,是以下三部分累加的和:
裸攻伤害
伤害=(骑士战斗时的攻 - 怪物的防)* (1+ (0-8的随机整数)/5)*属性效果
热血沸腾
50%概率激发(需要等级>150,正在气血过程中,SP>500)
伤害= 400 至 (力量*(40-80的随机整数)) 之间的随机整数
套装技能
有一定概率激发(根据套装概率参数设定),伤害=裸攻伤害*(随机下限 至 随机上限之间的随机整数)/100

首先,说一下我还没有来得及做的(这叫丑话说在前头)

套装技能,我只简单的测试过名人套的,当时我还没有看代码,只是简单的从最后的效果倒推,不过看来没有出错(有点得意,纯从结果推断也得到了正确的结论),而具体设置的值,如果无心不透露一点,就只能通过大批量的数据统计来猜测了,这一步我还没有做
热血沸腾,效果不大,以我23转1000多级的骑士来说(有名人套),力量才7400多,那么热血沸腾最大的伤害,也才60万左右,平均期望伤害更才10万左右,而此时我的裸攻伤害下限也到2千万以上了,所以可以忽略,而且不少骑士懒得吃 sp 药水,所以我暂时没有加进来分析

我的分析进展比较缓慢,只实现了裸攻伤害这一部分的精确分析
准确的说,现在我完成了 “骑士”,在忽略“热血沸腾”,没有“套装技能”,“完美的网络条件”,“不出现验证码、攻击过快、回答问题等异常情况”的条件下,杀死一个怪物的平均期望攻击次数分析

很晕吧,我想了很久,现在也只能分析到这一步,但相信这一步是基础,后续做逐步的推广后,最终能够实现对鼠标点击次数相当准确的预估
现在我来说明一下(大家会发现我前面说了一堆废话,实际上结果却非常简单),我现在需要推算的是
裸攻伤害*次数n >= 怪物血,这个不等式中,次数 n 的期望值计算(也就是平均次数)

大家是不是有点眼熟,这个其实就和前面赌徒扔骰子,然后累计点数和,非常相像
结合前面提到的裸攻伤害公式
    裸攻伤害 =(骑士战斗时的攻 - 怪物的防)* (1+ (0-8的随机整数)/5)*属性效果

处理一下不等式,可以得到如下的不等式
    (5+ (0-8的骰子点数))*次数 n > 怪物血 * 5 / ((骑士战斗时的攻 - 怪物的防)*属性效果)

所以,现在就要看赌徒需要平均扔多少次骰子(呵呵,这次是扔9面的了,0-8点),才能让点数和超过
怪物血 * 5 / ((骑士战斗时的攻 - 怪物的防)*属性效果)

这个问题在概率论上,可叫称作为“离散随机过程独立同分布累计阀值”问题(可怕的名称,其实就是吓吓人),我本来想用一个简单的公式进行推导,但失败了,和很多同行讨论,也没有得出一个简单的推导公式,所以我直接用程序生成具体的分布

首先关于 怪物血 * 5 / ((骑士战斗时的攻 - 怪物的防)*属性效果)的值,我在计算文件 “计算单个怪物(无心2008精确版).xls” 中增加一列 “骑士攻击回合中间值”(文件中红色列) 以供临时查询


从该项值,再到 “精确计算回合概率.xls” 文件中可以查到对应的值,也就是从文件的左边第一列查左边第二列的值,右边的数据都是中间数据,大家不用管(感兴趣的人可以看看,那是在 x 次攻击后,累计的和能够超过左边一列数值的概率)

现在,计算一下直接除以平均期望伤害的效果((5+ (0-8的骰子点数))的平均期望是9),大家会发现在45以前(也就是说攻击五次以下的情况),误差基本上超过了1/10,而对于一个小时大概要点击超过1000次的频繁操作来说,1/10的误差已经相当大了,所以我才提供了这个精确的概率统计

意思就是说,该怪物如果在忽略“热血沸腾”,没有“套装技能”,“完美的网络条件”,“不出现验证码、攻击过快、回答问题等异常”的情况下,平均杀一个冥界“艾亚哥斯”,需要点击 “普通攻击” 2.35116598
次,也就是说如果要杀 1000 个冥界“艾亚哥斯”(如果不升级,属性也没有变化的极端情况下),刨去找怪和怪物死了另寻怪物的点击外,玩家大概需要点击 2351 次 “普通攻击”左右,杀得怪越多,这个结果越准


孤立的来看这个回合概率,意义不是特别大,但是这将是后续精确分析的基础

两个孰优孰劣,似乎很难分析,但如果有了精确的回合概率,就可以考虑对比一下了
实际上大家可以发现 “精确计算回合概率.xls” 文件中,中间值在19,20附近,平均攻击次数的变化可达到1/20,甚至1/10
也就是说如果增加了这100力量,导致中间值在这个区间中变化了1-2,那么打怪效率大概可以提高 1/10 左右
也就是说如果前面少加耐力的时间 不足 后期打冥界的时间 的1/10,那么考虑节省属性点
反之,则应该考虑先加耐力多一点

同样的,与法师的比较也可以非常精确了(因为法师的攻击是固定值,回合数很容易推断出来),两者的回合点击比较可以精确到每个小时点击数的十位数(不考虑其他例如网速等外界原因)来比较,这样比较的误差将会在1%左右

这些问题,我现在还没有开始精确的去分析,我说的这两个例子,只是提出了一个分析的道路而已,并不是已经得到结论了

没有完成后续推导的原因是1. 我最近比较忙,没来得及去做;2 需要循序渐进,所以还得要搞定重要的套装技能威力,才有更大的实际意义

哈哈哈!!愿所有的骑士面前已无一合之将!!!!

TOP

你23转了?

TOP