猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)

“在Steam你不仅可以理财,甚至还可以学习。”大佬的这句话在我耳边响起时,我曾不以为意。直到我又一次让G胖血亏后才猛然发觉,Steam的确是一个让我可以终身学(lang)以(fei)致(sheng)用(ming)的地方。

作为一个大学第一学期高数就取得了 61分的优秀同学,已经没有多少能难住我的数学问题了,比如那说不定可以给报告加分的知识点“兰彻斯特方程组”。

我打开 Steam 中我跟风买的《史诗战争模拟器》,开始了我追求比 61分更高更卓越的征程。

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(1)

《史诗战争模拟器 》

Ultimate Epic Battle Simulator

《史诗战争模拟器》是一款超大型且史无前例的战争模拟游戏,它有着超高的自由度和超出你想象的同屏人数,你可以选择让五万个重装枪兵大战十万名斯巴达勇士,或者让数不胜数的日本剑客和丧尸之间展开捉对厮杀。

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(2)

它的表现形式主要有线性率平方率这两种,下面将结合实例一一说明。

兰彻斯特线性律

两群攻击距离约等于贴脸的士兵,在战力相近,战线长度基本固定的情况下近身互博,基本上都是成双入对一起倒下,即兰彻斯特线性律——人多的那一边多出多少,最后就剩下多少

我打开《史诗战争模拟器》,两边各选择了1000个剑人,开始了我对自己理论的确认。

实验1.1

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(3)

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(4)

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(5)

直到最后两条折线才出现区别,因为剑人稍微较少的那一方逐渐被包围,差距也因此逐渐变大导致。数据在误差允许范围内,这满足我对兰彻斯特线性率的理解,我对此结果甚为满意。

实验 1.2

我又开了一局,这次把剑人们决斗的地方换在了桥上

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(6)

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(7)

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(8)

两条线变化率基本相同,数据在误差允许范围内,这也满足我对兰彻斯特线性率的理解,我对此结果也甚为满意。

兰彻斯特线性率我的确是彻底了解了。

兰彻斯特平方律

如果两群可以远程攻击的弓箭手遇到了一起,事情就变得复杂了。只要他们能看到对面的人,他们就会把手中所持之矢一口气射过去。这是兰彻斯特平方律的条件。

平方率的核心内容是当双方的兵力总数逼近瓶颈时,装备的优劣是影响战局的主要因素

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(9)

实验 2.1

假设一个正常持矢的弓箭手数据为100生命, 32伤害, 64%命中率。那么他一次对另一个弓箭手所造成的伤害为32*0.64=20.48,夺走了他20.48/100=0.2048的生命。

对于两群持矢来说,假设A方有M人,B方有N人,A 方每次夺走B方生命数为0.2048M, 同理 B 方每次夺走A方0.2048N条生命,下一回合时,A方就有,M-0.2048N个人,而B方有N-0.2048M人。

于是可以得到方程组:

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(10)

双方的初始人数都设定为10,那么双方人数都应该如下图:

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(11)

双方在18 轮互射之后全部死光光,于是我设定好100持矢VS100持矢

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(12)

结果最后获胜方只有10个人,在误差允许范围内,这满足我对兰彻斯特平方率的理解,我对此结果甚为满意。

实验 2.2

但是我一个学过微分的人,我的自豪感不允许我就这样相信他们都是同时射出去的,他们的射击应该是一个连续的过程。方程组应为:

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(13)

化简为

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(14)

为t时刻后的双方的人数。

为了更好的验证这一推论,把其中一批持矢分为两波,A方的1000人将分两次来对抗B方的500人与另500人。那么按照计算,A方射死第一波B方的500人后,还剩下866人,射死第二批500人后还剩下707人。

不就是再开一局嘛。

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(15)

绿色区域为A方的1000持矢,红色区域为B方的500持矢,蓝色区域为B方的处于站桩输出的500持矢。

第一轮,A方以牺牲106人的代价轻松消灭B方第一波500人,并向 B 方第二波人走去。

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(16)

由于第二波是站桩输出,A 方以牺牲48人的代价就更为轻松地消灭了B方第二波 500人

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(17)

我觉得第一波的数据在误差允许范围内,这满足我对兰彻斯特平方率的理解,我对此结果也甚为满意。

实验 2.3

但是如果是一群普通持矢与一群辣鸡持矢互怼呢?

假设一个普通持矢的数据为100生命,32伤害,64%命中率。一个垃圾持矢的数据为100生命,32伤害,16%命中率。普通持矢最开始有M人,辣鸡持矢最开始有N人,那么满足的方程组应为

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(18)

化简为

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(19)

为t时刻后的双方的人数。

如果普通持矢与辣鸡持矢一开始都有1000人的话,那么普通持矢在怼死所有辣鸡持矢后应该还剩下968人。

来来来,在开一局。

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(20)

果然和预想的一样, 普通持矢以极大优势打败了垃圾持矢,我想我的报告应该就有分了。

实验 2.4

报告应该不止要拿到分,而且应该要在60分以上,为了达到这个目的,我得出一个近似完美的互怼方法,让M 个普通持矢与N个辣鸡持矢在互怼之后全部死光光。

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(21)

令M(t)=N(t)=0,N=1000,则M=250.

也就是说250个普通持矢与1000个辣鸡持矢在互怼之后全部死光光。

我按照计划设定好250个普通持矢与1000个辣鸡持矢:

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(22)

并按照计划互怼后死光光……

并按照计划互怼后死光光……

并按照计划互怼后死光光……

可是现实的答案却如此残酷

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(23)

1000个辣鸡持矢以仅牺牲了138人的优势打败了250个普通持矢,我感到事情并不简单。

我只好再回到更原始的方法寻找真理:

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(24)

结果

结果

结果竟然又吻合了!!!!

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(25)

猫咪打不过哭了一个多小时了(1只喵星人如何打赢1000名铲屎官)(26)

根据平方率的理论,武器装备落后于对手4倍水平级别,必须增派至4倍兵力方可抵消对手在装备上造成的压力

但经过6回合的互怼后辣鸡持矢竟然把普通持矢怼的所剩无几,我完全无法理解这种事情的发生,真的完全无法理解,我引以为傲的微分竟然失去了效力,我的报告也许从此就再也不能及格了。

相信您已经看完了以上的内容并知晓了我的困惑。如果您知道答案,也碰巧有这个游戏的话,请不吝将您的想法用模拟器展现给我。

您的此举将决定我是否及格的命运,拜托了,我的英雄!!!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页