|
追商
首先声明,本文只从技术的角度讨论追商,不涉及道德评价。
之所以会花一些闲暇时间来研究这个问题,不过是这几天对 JScript 和曲线拟合有点兴趣. 碰巧拿战神中的追商问题来练练手而已. 笔者花了3天的空余时间,基本能够对+-500页以内贸易的商队的时间进行0秒误差的准确预测(用过1,3,9级贸易分别试验过15次左右)。
附: 笔者不是学数学的,而且离开大学也很多年了.现在主要是做与计算机系统软件和硬件相关的工作. 所以可能对数据拟合的理解有所偏差。
欢迎不同的见解,希望能够抛砖引玉.
追商的定义:
可能大家对这个问题有不同的理解. 在本文中,我的理解是 通过调整军队和商队的时间差,迫使卖家与前来掠夺的军队正面战斗.
具体包含3个步骤:
1) 掠夺者购买卖家的出售物资,根据掠夺者和卖家之间的距离,以及贸易中心等级,推导出贸易达成的时间. 假设是x秒钟后.
2) 掠夺者估计自己的军队到达卖家的时间,假设是y秒后(y<x).
3) 在 x-y+1 秒钟之后,掠夺者发兵打卖家. 使得掠夺者的军队到达卖家的城的时刻只比贸易达成的时刻晚一秒.
注意,这里"追商"的目的只是迫使卖家与掠夺者军队正面战斗. 不排除被埋伏的可能.
问题分析:
通俗的说,"追商"玩的就是军队和商队的时间差. 所以要解决这个问题,我们要估测军队的时间和商队的时间.
军队的时间:
这个其实不是一个问题,通过出征页面可以很容易的得到具体时间.
这里,我感兴趣的是,这个公式具体是什么.
另外,通过这个公式,我可以事先算好,我这城里的英雄和我所有的兵种搭配, 在一个小时内,最远能够跨过多少个页面.
我是通过分析 JScript 文件达到这个目的的.
var tmpTime = Math.round((63* Math.sqrt(tmpDist * 200 / msp) + 1)*100/ speedfactor);
另外一种解决方式是通过拟合数据,推导出军队时间与AB城距离和军队速度之间的公式.
商队的时间:
我相信思考过"追商"问题的朋友,都多多少少会从收集商队的时间入手. 从操作上来说,就是记录下从买家开始贸易时刻到贸易完成时刻之间所花的时间.
最简单的方法是,选择两个贸易级别都是1级的城市,记录下每次贸易的商队的时间. 显然贸易级别不变,两座城的距离不变,商队的时间应该也不变.
Surprise!!! 这个时间每次都是变化的. 差值高达几分钟.
为什么会有这个差值? 这差值是随机的吗? 怎么在有差值的情况下做到0误差追商?
|