勾股定理之我要打“军团”

来源:互联网 发布:优化最好的单机游戏 编辑:程序博客网 时间:2024/04/30 14:55

今天大神没有打DOTA,而是在打一个叫军团的防守类对战游戏。大神打Dota很具有观赏性图片,意识和操作都是我们常人学不会的。他总有很多道理,比如这次,他跟我说,对战双方的兵力满足勾股定理,比如你有5个兵,对方有4个,那么防守下来你会剩3个。很神奇,有没有,反正我以前没听说过,我只知道会大于一个。

于是我准备验证下它的真实性,我准备写个程序做测试,晚上有事情做了。我们做一些假设:

1.       兵的射程无限远

2.       双方使用相同兵种

3.       双方的兵都很聪明,及为了尽快消灭敌人,他们会同时攻击一个单位

4.       战斗开始后,每轮射击中,每个上轮存活下来的单位都会攻击一次,及不存在单位因被杀死而没有攻击

然后我们就可以写代码了,这个就不多谈了,想看的附件里有。测试结果如“图 1”:

果然,5:4存活了3个。现在考虑如果增大数字,比如是5040。如果我们分成105:4,那么显然存活30个,但是这里不能这么分,因为这样存活的30个里半血的很多,平直觉聪明的敌人不会留有两个半血的。所以把数量增加到500:400结果变成了289,比300少,不过很接近300

是不是我的假设里出了问题。仔细想想,假设4有问题。因为每轮攻击中,兵力多的一方更有可能将对方直接杀死,而不给于其攻击机会,但是现在它们是平等的,所以更改了假设4之后将更加接近沟谷定理。但是这个误差很难修正,因为逻辑还是不清晰。

然后是不是血量和攻击力也影响结果呢?我把攻击力调小,血量调大后结果如“图 3”,奇迹发生了,居然异常接近。最后谁数学好能证明它的正确性??

图片 图片 图片
图 1                           图 2                           图 3
原创粉丝点击