数学

纸上谈兵:萨尔浒之战以少胜多的原理

萨尔浒之战,用一个简化的数学模型看看以少胜多背后有什么数学原理

梦里醉逍遥 发表于  2011-08-16 17:00

小时候我们都学过纸上谈兵这个词。其实历史上纸上谈兵的并非只有赵括一人,还有数学家。1914年一战期间,英国工程师弗雷德里克•兰彻斯特(我敢打赌这家伙是一个死理性派)异想天开地用数学解析战争,创立了著名的兰彻斯特战斗模型。通过它,我们能很容易地发现以少胜多背后的数学故事,比如经典的萨尔浒之战。

但在故事开始前,有必要说明的是,这只是 一个简化的数学模型 ,忽略了一些难以量化的因素,譬如天时、地利、人和以及政治因素,而它们对战争也有举足轻重的影响。事实上,从科学角度讲,研究结果仅对研究的模型有效。不过我们都知道,研究总是从基础模型开始的。

用兰彻斯特模型解析战争

/gkimage/uq/dm/t9/uqdmt9.png

这个著名的兰彻斯特战斗模型,实际上是一个讨论参战方战斗力和时间关系的模型,可以用来宏观地描述参战双方的战斗力损耗过程。这样说或许有些抽象,让我们先思考一个问题,现在有两支军队 A 军和 B 军。A 军以精锐著称,但兵力只有 B 军的一半,B 军人多势众,但单兵作战能力平均只有A军士兵的一半, 除此之外它们其他方面全部是等同的。如果这两支军队交战,一支军队消灭另一支军队即为胜利,你认为谁将是这场战斗的赢家?读者们不妨先选定一个答案( A 胜、B 胜或者玉石俱焚),然后再来看看兰彻斯特战斗模型怎么说。

假设现在有一场战斗,交战的双方为甲方和乙方。我们规定它们在战斗中某一时刻的战斗力(冷兵器时代,一般情况下就是部队中士兵的人数)分别是 x( t ) 和 y( t ) ,其中t表示时间。同时为方便起见,假设 x( t ) 和 y( t ) 都是关于 t 的连续可微函数,且恒为非负。换言之,双方的战斗力都是随着时间连续变化的,不可能在某一时刻发生突变(譬如《西游记》中的孙悟空从天宫搬来救兵),也不可能在某一时刻有变化率的突变(譬如打架的时候被对方一巴掌打通任督二脉)。

在此基础上,我们再假设某方战斗力的变化都是由于敌方对它的攻击造成的,这样战斗力在某一时刻的变化量,便只和该时刻对方的战斗力正相关。

据此我们可以得出下面两个微分方程:

/gkimage/hx/19/a0/hx19a0.png

其中系数 a 和 b 分别是乙方和甲方对对方的杀伤率,也就是某方每单位战斗力能够对敌方造成的战斗力损耗。

这便是著名的兰彻斯特战斗方程。也许现在这个方程看上去还不够直观,但如果把它稍作变换,就可以得到这样的式子。

/gkimage/7o/5b/k1/7o5bk1.png

在上面的式子中,假设等式左右两边的值为正,当 x = 0 时,必有 y > 0 。这也就意味着当甲方的战斗力消耗殆尽的时候,乙军还有人活着,这种情况下自然是乙军获得了胜利。同理,当等式左右两边的值小于0时,甲军将取得胜利。那当这个值等于0的时候呢?显然双方将惨烈地同归于尽,最终就像电影《赤壁》收尾处所说的那般:“大家都输了。”

更重要的是,上述这个式子还说明了 在战斗中双方的军事实力和各自军队战斗力的平方成正比 。这也就是著名的兰彻斯特平方律。

举个最简单的例子,倘若两支旗鼓相当的军队来火并的话,此时a=b , x 0 = y 0 = 1 ,这时候 a y₀ 2 = b x₀ 2 ,最终双方将同归于尽。但是倘若甲军去和一支人数是它的两倍,但每个士兵的实力只有他一半的乙军来打呢(这正是在前面提出的问题)?由 2a = b, y 0 = 2x 0 可得 a y₀ 2 / b x₀ 2 = 2。这表明占据人数优势的乙方将取得胜利,尽管他们的功夫都只有对手的一半。

更进一步来看后面这个例子,把 2a = b, y 0 = 2x 0 ,x = 0 这些条件都代入到上面给出的等式当中,可以得到y= √2 x。这意味着在乙军彻底消灭他的劲敌——精锐的甲军以后,自身兵力的损失还不到一半。如此事实无疑会让以精锐闻名的甲军感到压力山大,因为他们如果想要在人数不变的情况下和乙军对敌而不败的话,至少要让自己的每个士兵的单兵作战能力达到乙军的四倍才行!

上面的例子让我们看到,兰彻斯特平方率直观地反映了对战双方的战斗力对比。金庸迷们一定记得《笑傲江湖》中东方不败独战令狐冲、任我行、向左使、任盈盈的精彩片段,双方实际上打成平手。由此根据兰彻斯特平方率能推算出,东方不败的战斗力是其余四人战斗力平均值的16倍!也就是说,如果令狐冲、任我行、向左使、任盈盈战斗力分别是100、80、60、40的话(平均战斗力70),东方不败的战斗力就是70 × 16 = 1120 。Ta的“天下第一”还真不是浪得虚名。

萨尔浒之战以少胜多的原因

/gkimage/1c/2p/4t/1c2p4t.png

从兰彻斯特到将近百年后的今天,历史开始显得久远。但这并不妨碍我们做一回“事后诸葛亮”,意行沙场,也来纸上谈兵,用激扬文字再指点当年战场。而这一回,我们就从数学角度来讲述那场经典的以少胜多——萨尔浒之战。

这是发生在万历四十七年(公元1619年),中国辽东的一场规模浩大且影响深远的大战。

在这场战役中,当时仅拥有约六万八旗子弟的后金军首领爱新觉罗•努尔哈赤,凭借着他老到的战略眼光,竟将兵力二倍于他、汹汹而来的大明王师打得惨败而归。此战明廷丧师近五万,将官战死者亦有三百余人,其中还包括山海关总兵杜松这样的高级将领,可谓精锐尽失。若说当年李成梁对待努尔哈赤的态度是“为虺弗摧”的话,经此一役的后金对明廷来说,已然是“为蛇若何”了。

然而在此战之前,并非人人都把后金当回事,至少此次战役中明军方面最高统帅、辽东经略杨镐大人就是如此。据说在萨尔浒战役之前,杨镐曾与努尔哈赤修书一封,称大明王朝集结了四十七万大军将袭,并将出兵日期如实相告,似乎想以天朝神威威吓后金,好“不战而屈人之兵”。由此可见,在当时的杨镐看来,“消灭贼酋”不过是手到擒来的事情,根本没有想到会有战败的可能。但是事实上,如果杨镐大人了解兰彻斯特模型,也许他就会发现,虽然他的兵力是对方的两倍,但他的惨败却早在出师之日就已注定。

何出此言呢?不妨让我们用兰彻斯特战斗方程来分析萨尔浒之战。

当时努尔哈赤麾下的八旗子弟都是久经沙场的精锐,军队素质自然不可小觑。但明军亦有先进的武器和装备可与之抗衡,再加上常年和叛军作战的川军,以及由当年一代名将戚继光精心打造的浙军,军队的兵员能力也不在后金军之下。所以双方的杀伤率系数不妨看做是相等的。

那么兵力情况又是怎么样呢?我们在前面就已说过,后金军的兵力约六万人,而明朝方面的数据则是十二万。恰如前面的例子一般,后者的兵力是前者的两倍。换言之,如果杨镐的大军就这么杀过来的话,似乎努尔哈赤唯一的方法,就是在对方到来之前,把自己手下兵士的作战能力提高到原来的四倍。

但是一个很有趣的事实是,在萨尔浒之战的交战过程中,始终占据兵力优势的却是后金。原来杨镐在进攻的时候竟把自己的军队分成了四路,而这四路军队不但没有统一的调度,相互之间的通信也甚不灵便(实际战争中,有两路军队已经被努尔哈赤消灭了,第三路军竟还毫不知情)。这就使得本来兵力薄弱的努尔哈赤反倒拥有了以众击寡、各个击破的局部战略优势。虽然后金的兵力只有明朝的一半,但是后金每次战斗中面对的兵力,却都只有自己的一半。

让我们来为这种战略局面算一笔帐。假设后金军和明军的杀伤率系数都是 1,战斗力以万人为单位,那么后金军的军事实力是:

/gkimage/ev/8l/om/ev8lom.png

假设明朝的四路军队中兵力平均分配,也就是每路有 3 万人(实际兵力部署与此相去不远),那么明朝的军事实力则是:

/gkimage/k2/0n/s4/k20ns4.png

我们发现,拥有巨大人数优势的明军的军事实力和后金军其实是相当的!

当然,这里的计算有一个问题。我们给出的这种明军兵力分配方案,恰巧是使得它的军事实力总和最小,根据均值不等式可以知道,只要在实际分配的时候哪怕采用3.01,2.99,3,3这样的方案,明军不就能够打败后金了吗?

在这个模型下的确如此。但这要求当时的明军能如同岳飞所梦想的那样“文臣不爱钱,武臣不惜死”,军队在损失惨重的情况下依然坚持战斗到最后一人。那样的话,努尔哈赤老兄真的是要操心下自己脑袋的去处了。可惜实际情况并非如此。古代战争的一个事实是,当某方的损失超过一定数量以后(这个数量通常还并不高),往往会因为士气低落而溃散,在接下来就变成“追亡逐北”的场面了。这种情况下战斗变为屠杀,溃散军队的杀伤率约等于 0。所以战争的胜负绝大多数都不是因为一方把另一方完全歼灭,而是因为一方的士气已经无法维系。

所以不妨让我们假设双方都会在自身兵力损失达到一半的时候溃败。同时再把明军四路兵力的实际部署情况稍加调整,用 4,3,3,2 作为它的部署策略,此时的军事实力总值为38,高于后金军。第一场战斗后,后金的残余兵力 x 1 满足如下方程:

/gkimage/vq/64/gg/vq64gg.png

解之得 x 1 =2√6≈4.90 。也就是第一场战斗结束后后金军的剩余兵力约4.9万人。我们继续通过下面的方程求解 x 2 , x 3 , x 4

/gkimage/u0/f6/gm/u0f6gm.png

解之得

/gkimage/qd/2t/vc/qd2tvc.png

计算结果表明,四场战斗中每一场都是后金军的兵力占优,导致每一场战斗的胜者都是后金,所以最后的胜者也是后金——尽管总的军事实力明军更高。

要说明的是,这里对明军并没有任何的不公平。事实上这个模型还有些偏袒明军,因为在当时的历史条件下,明军士气的水平其实很难达到伤亡人数约一半时才溃散。如果按照《窃明》中所说的标准——“除了处于死地外,最优秀的封建军队也不过能忍受一、两成的伤亡而不崩溃”来计算,当后金军取得胜利的时候,它所损失的兵力也不过1.28万人,还远不到其初始兵力的三分之一。

借助数学工具,数百年后的我们可以轻松地计算出努尔哈赤必将取得大胜的结果 。可惜的是当时背负十数万将士性命的统帅杨镐并没有这样的觉悟,即使当开原总兵马林根据自身的经验向他提出“王师当出万全,宜并兵一路,鼓行而前,执取罪人,倾其巢穴”这一清醒建议的时候,他也只是傲慢地坚持故我。如此无能的统帅最终葬送了大明的精锐之师。

结语

/gkimage/ar/x1/vq/arx1vq.png

后来的事情是:万历四十七年二月二十五日,大明王师正式出征;三月初一,西路军遭努尔哈赤攻击,寡不敌众,全军覆没,总兵杜松战死;三月初三,北路军遭受攻击,寡不敌众,全军覆没,总兵马林狼狈逃回;三月初五,东路军被后金军偷袭,猝不及防,全军覆没,总兵刘铤战死;三月初六,南路军接到三路大军战败的消息后匆忙撤兵,后金军趁势追击,损伤惨重。结果正如我们这群事后诸葛亮所分析的一样,可惜我们的分析也正如开原总兵马林的意见一样,终无改这场战事的结局。

也许在因这场惨败而下狱到他被处斩以前,杨镐也曾多次反思过这场过战斗。他或许无法像我们这样定量计算出战斗的结果,但至少也应该会对《孙子兵法》虚实篇里“以众击寡”这个词有一层新的理解吧。

 

 

本文用兰彻斯特模型分析了萨尔浒之战中后金以少胜多背后的数学原理。诚如作者一再强调的那样,这个模型其实是一个简化的数学模型,并不能完全反映出最真实的历史。但这丝毫不影响本文的价值,相比各种繁冗的史料分析,它带给我们眼前一亮的感觉。

另,本文作者就是网上那套流传很广的 让文科生流泪,让理科生沉默的文理综合题 的设计者,请大家多多关注他吧。

显示所有评论

全部评论(138)
  • 1楼
    2011-08-16 17:13 shiny一新

    战争的胜败还是得看参与的人的质量啊。。。

    [1] 评论
  • 2楼
    2011-08-16 17:40 wheeler 软件工程师

    当年为了玩即时战略推出兰彻斯特模型 的飘过

    [1] 评论
  • 3楼
    2011-08-16 17:45 Argus 法学学士

    莱茵哈特和亚斯提星域会战

    [1] 评论
  • 4楼
    2011-08-16 18:06 FireKDragon

    最后一句话亮了。。。

    [0] 评论
  • 5楼
    2011-08-16 18:07 齐柏林飞艇

    第一张图是《天国王朝》里的

    [0] 评论
  • 6楼
    2011-08-16 18:08 driversetc

    梦里醉逍遥 coder,历史爱好者ψ35人关注

    内牛满面

    [0] 评论
  • 7楼
    2011-08-16 18:13 杜马thomas

    太强大了。。。太虎了

    [0] 评论
  • 8楼
    2011-08-16 18:18 lalunasun 化妆品科学控

    萨尔浒啊
    我家那块儿……

    [0] 评论
  • 9楼
    2011-08-16 18:26 亚路

    厉害 感觉像DND规则了

    [0] 评论
  • 10楼
    2011-08-16 18:29 Derek同学 软件工程硕士

    死理性的真能Hold住啊!!!

    [0] 评论
  • 11楼
    2011-08-16 18:33 Schrodingers_Cat

    NB,不过冷冰器时代统帅这个参数影响甚大。玩三国11时取胜就看将是否更NB,兵力都是浮云。

    [0] 评论
  • 12楼
    2011-08-16 18:34 人总爱虚伪

    很好很强大!

    [0] 评论
  • 13楼
    2011-08-16 18:35 已注销用户

    据说纸上谈兵的赵括其实战斗力惊人,只是最后军队士气散了才被杀死。

    [0] 评论
  • 14楼
    2011-08-16 18:47 ypadu

    这篇文章犀利。。。

    [0] 评论
  • 15楼
    2011-08-16 19:12 chenmao06

    不用三国11了 看看三国群英2就知道了 一个40级和关羽可以挑三个带兵的将军了
    不过这个模型真是不怎么地

    引用V I P的回应:NB,不过冷冰器时代统帅这个参数影响甚大。玩三国11时取胜就看将是否更NB,兵力都是浮云。
    [0] 评论
  • 16楼
    2011-08-16 19:15 御手洗破·厕

    数学模型……无敌……
    如果LZ查查资料……确定一下分兵的比例的话可能更无敌……

    [0] 评论
  • 17楼
    2011-08-16 19:51 runck

    萨尔浒之战模型有几个小问题。
    1.加入溃败后的计算中,为什么后金每一次只与一支明军发生战斗?如果全力只攻一支,另外的三支不就乘虚而入了?所以本人认为此过程不太合理。
    2.就算是一支一支地对战(本人保留对战斗顺序引起结果改变的质疑,因为比较懒得算),第四次战斗后X4=2.83<3=6/2,此时明军恰好为一半……结论就是在这场战斗结束前后金已经溃败(X4=3时)
    不知我理解有没有什么问题……本人历史盲……

    [0] 评论
  • 18楼
    2011-08-16 20:15 多棱镜

    觉得士气更重要些

    [0] 评论
  • 19楼
    2011-08-16 20:19 梦里醉逍遥 coder,历史爱好者
    引用聖羽╋幻宮的回应:萨尔浒之战模型有几个小问题。
    1.加入溃败后的计算中,为什么后金每一次只与一支明军发生战斗?如果全力只攻一支,另外的三支不就乘虚而入了?所以本人认为此过程不太合理。
    2.就算是一支一支地对战(本人保留对战斗顺序引起结果改变的质疑,因为比较懒得算),第四次战斗后X4=2.83<3=6/2,此时明军恰好为一半……结论就是在这场战斗结束前后金已经溃败(X4=3时)
    不知我理解有没有什么问题……本人历史盲……


    1.因为明军四路军队到达战场的时间相异,相互之间又情报不通,举个例子来说,西路军和北路军都败北了,东路军还毫不知情。这个过程确实不合理,是明朝战略部署的大漏洞,而且“它就是发生了”。
    2.这一点确实是我没说清楚,战斗力达到一半溃散是在每场战斗中,而不是一整场会战(其实你可以注意到,明军的溃败就是这么算的)。因为我觉得一个人在搏命中判断局势很少会再去联想以前的伤亡统计的。所以第四次战斗后金军溃散时的兵力应该是1.66万。

    [0] 评论
  • 20楼
    2011-08-16 20:43 黑超里的猫叔

    不然不止我想到了YY传说!

    [0] 评论
  • 21楼
    2011-08-16 20:51 新知不知

    这个应用数学,这个……

    [0] 评论
  • 22楼
    2011-08-16 20:51 九猪

    只匆匆浏览了下,觉得有一点想不通

    我们规定它们在战斗中某一时刻的战斗力(冷兵器时代,一般情况下就是部队中士兵的人数)分别是 x( t ) 和 y( t ) ,

    ==========================================

    这样假设的话,其实不用推那么多了吧。。。。。。。。。。因为战斗力就是人数了,就是谁多谁赢了,单兵作战能力忽略吧。。。。

    [0] 评论
  • 23楼
    2011-08-16 20:55 梦里醉逍遥 coder,历史爱好者
    引用九猪的回应:只匆匆浏览了下,觉得有一点想不通

    我们规定它们在战斗中某一时刻的战斗力(冷兵器时代,一般情况下就是部队中士兵的人数)分别是 x( t ) 和 y( t ) ,

    ==========================================

    这样假设的话,其实不用推那么多了吧。。。。。。。。。。因为战斗力就是人数了,就是谁多谁赢了,单兵作战能力忽略吧。。。。


    我似乎措词不太清楚,其实这句话“战斗力”的“力”字你可以看作和“有生力量”的意义相似。萨尔浒之战我假设了双方单兵能力相等;但是完整的兰彻斯特模型不能不考虑这些。

    [0] 评论
  • 24楼
    2011-08-16 20:56 自带干粮吉米徐

    这个全战的MOD哪里下的……?

    [0] 评论
  • 25楼
    2011-08-16 21:04 YTed

    其实明军西路军的兵力是六万人,跟后金军人数相若。

    [0] 评论
  • 26楼
    2011-08-16 21:06 天马A

    如何把其他战争变量加进去?

    [0] 评论
  • 27楼
    2011-08-16 21:12 艾萨克想睡觉斯基

    三土哥。这是哪个MOD啊。
    坚忍,重甲,弓矢,骑兵。
    五百年前,女真人的特性,满人想必还是保留了不少呢。
    我觉得这个战斗过程真符合女真人的战斗特点呢……

    [0] 评论
  • 28楼
    2011-08-16 21:12 吾一凡夫

    准确点来说——还有士兵与敌人的接触率——有时候,很多士兵都是排在后面的,也就是说,实际参战兵力有所减少。另外,杀伤率与武器的速度、命中率、杀伤率有关系,这些楼主似乎都是没有考虑到。虽然提到了战斗力差不多,但这只是主观因素。

    [0] 评论
  • 29楼
    2011-08-16 21:13 天马A

    另外问一下你的个人博客是在什么网站上建起来的,很不错

    [0] 评论
  • 30楼
    2011-08-16 21:22 梦里醉逍遥 coder,历史爱好者
    引用明日之光的回应:准确点来说——还有士兵与敌人的接触率——有时候,很多士兵都是排在后面的,也就是说,实际参战兵力有所减少。另外,杀伤率与武器的速度、命中率、杀伤率有关系,这些楼主似乎都是没有考虑到。虽然提到了战斗力差不多,但这只是主观因素。

    你说得很对。所以这只是一个简单模型。

    [0] 评论

显示所有评论

你的评论

登录 发表评论

梦里醉逍遥
梦里醉逍遥 coder,历史爱好者

作者的其他文章

更多科研事,扫码早知道

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区