《孙子兵法》第八篇《九变篇》,核心思想是强调将帅在战争中需根据实际情况灵活应变,不拘泥于固定规则,同时警惕性格弱点对决策的影响。
原文
孙子曰:凡用兵之法,将受命于君,合军聚众。圮地无舍,衢地交合,绝地无留,围地则谋,死地则战。涂有所不由,军有所不击,城有所不攻,地有所不争,君命有所不受。
故将通于九变之地利者,知用兵矣;将不通于九变之利者,虽知地形,不能得地之利者矣。治兵不知九变之术,虽知五利,不能得人之用矣。
是故智者之虑,必杂于利害。杂于利,而务可信也;杂于害,而患可解也。是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。
故用兵之法,无恃其不来,恃吾有以待也;无恃其不攻,恃吾有所不可攻也。
故将有五危:必死,可杀也;必生,可虏也;忿速,可侮也;廉洁,可辱也;爱民,可烦也。凡此五者,将之过也,用兵之灾也。覆军杀将必以五危,不可不察也。
译文
孙子说:用兵打仗的一般规律是,将领接受国君的命令,征集民众,组成军队。在难以通行的地区,不可驻扎;在四通八达的地区,要与四邻结交;在难以生存的地区,不可停留;在四周有险阻、容易被包围的地区,要精于谋划;陷入走投无路的地区,就要坚决奋战。有的道路不宜通过,有的敌军不宜攻击,有的城邑不宜攻占,有的地方不宜争夺,不合乎上述“九变”的,即使是国君的命令,也可以不执行。
因此,将帅能通晓九种机变的好处,就懂得用兵了;将帅不通晓九种机变的好处,虽然知道地形情况,也不能得到地利。指挥军队而不知道各种机变的方法,虽然知道“五利”,也不能充分发挥军队的战斗力。
所以,高明的将领考虑问题,一定兼顾利与害两个方面。在不利的条件下看到有利的一面,事情就可以顺利进行;在有利条件下看到不利的因素,祸患便可及早解除。因此,要使诸侯屈服,就要用诸侯最害怕的事情去威胁它;要使诸侯疲于奔命,就要用各种貌似正经的大事去困扰它;要使诸侯归附,就要用利益去引诱它。
用兵打仗的原则是:不要寄希望于敌人不来,而要依靠自己有充分准备,严阵以待;不要寄希望于敌人不会进攻,而要依靠自己有使敌人无法攻破的充足力量和办法。
将帅有五种致命弱点:有勇无谋,只知死拼,就可能被敌诱杀;临阵畏怯,贪生怕死,就可能被敌俘虏;急躁易怒,一触即跳,就可能受敌凌辱而妄动;廉洁而爱好名声,过于自尊,就可能被敌侮辱而失去理智;溺爱民众,就可能被敌烦扰而陷于被动。这五点是将帅易犯的过失,是用兵的灾害。军队的覆灭、将帅的被杀,都是由于这五种致命弱点造成的,这是做将帅的人不可不充分注意的。
核心思想
①灵活应变:
- 九变:这里的“九”是虚指,表示变化之多,而非实指九种变化。“变”指的是灵活处事,随机应变。
- 核心要义:善于用兵的将领,能够根据战场上的各种变化,有所为、有所不为,从而趋利避害。
②兼顾利害:
- 智者之虑:高明的将领考虑问题,必须兼顾利与害两个方面。在有利条件下看到不利的因素,祸患便可及早解除;在不利条件下看到有利的一面,事情就可以顺利进行。
- 全面分析:将领在决策时,要全面分析形势,不能只看到利益而忽视潜在的风险,也不能只关注风险而错失良机。
③有备无患:
- 战略思想:强调在战争开始之前,将帅们必须时刻做好应战的准备,不能疏忽大意。
- 实力为本:真正的依仗是自己强横的实力,而不是寄希望于敌人不来进攻。
④将帅修养:
- 五危论:指出将帅性格上的缺陷会给战争带来严重的恶果,如“必死”(只知死拼)、“必生”(贪生怕死)、“忿速”(急躁易怒)、“廉洁”(过于自尊)、“爱民”(过于仁慈)等。
- 完美将帅:真正的将才应具有良好的性格修养,从容不迫、沉着冷静,能够克服个人性格上的弱点。
现实意义
①商业竞争:
- 灵活应变:在商业竞争中,市场环境瞬息万变,企业需要像将领一样,根据市场变化灵活调整策略,以适应市场需求。
- 风险评估:在做出商业决策时,要全面评估风险与收益,不能只看到眼前的利益而忽视潜在的风险。
②个人发展:
- 自我提升:个人在职业发展中,也要像将领一样,不断提升自己的能力和修养,以应对各种挑战和机遇。
- 性格修炼:同时,要注意克服自己性格上的弱点,如过于急躁、过于保守等,以更加成熟和理性的态度面对生活中的各种问题。
③国际关系:
- 外交策略:在国际关系中,各国也需要根据国际形势的变化灵活调整外交策略,以维护国家利益。
- 和平共处:通过外交手段解决争端和冲突,避免战争的发生,这也是《孙子兵法》所倡导的“上兵伐谋”思想的体现。
④危机管理:
- 预防为主:在危机管理中,要贯彻“有备无患”的思想,提前做好预防和准备工作,以应对可能出现的各种危机。
- 灵活应对:当危机发生时,要灵活应对,根据危机的性质和特点采取相应的措施,以最大限度地减少损失。
《九变篇》的核心在于“变”的哲学:以动态思维应对不确定环境,通过灵活性和预见性掌握主动权。其现实意义在于提醒我们:
-
规则是工具而非枷锁,需根据目标与环境调整手段;
-
成功依赖对变化的驾驭能力,而非单纯依赖资源或计划。
这一思想对现代社会的竞争、创新与风险管理具有深刻的指导价值。
- 圮地:指山林、险阻、沼泽等难行的地区。
- 衢地:指多国交界、四通八达的地区。
- 绝地:指无水草、无粮食,难以生存的地区。
- 围地:指四面险阻、进出通道狭窄,容易被包围的地区。
- 死地:指前有强敌、后无退路,或后有追兵、前无通路,非死战不能生存的地区。
- 涂有所不由:“涂” 通 “途”,意为有的道路虽可走但不要走。“由” 是经过的意思。
- 杂于利害:“杂” 意为兼顾。指考虑问题要兼顾利与害两个方面。
- 屈诸侯者以害:“屈” 指使屈服。意思是用各种祸患去使诸侯屈服。
- 役诸侯者以业:“役” 是役使的意思。指用各种繁杂的事务去役使诸侯,使其疲于奔命。
- 趋诸侯者以利:“趋” 是使…… 归附、使…… 趋向的意思。即用利益去引诱诸侯,使其归附自己或按我方意愿行动。
- 忿速:指性情急躁、易怒。
- 故将通于九变之地利者,知用兵矣:所以将领能通晓各种机变的好处,就算懂得用兵了。
- 治兵不知九变之术,虽知五利,不能得人之用矣:指挥军队不懂得各种机变的方法,虽然知道 “五利”,也不能充分发挥军队的战斗力。
- 无恃其不来,恃吾有以待也:不要寄希望于敌人不来,而要依靠自己有充分准备,严阵以待。
- 将有五危:必死,可杀也;必生,可虏也:将领有五种致命弱点,有勇无谋、只知死拼,就可能被敌诱杀;临阵畏怯、贪生怕死,就可能被敌俘虏。
代码模拟
下面用 C 语言尝试对《孙子兵法・九变篇》核心思想进行模拟。此模拟主要围绕不同地形下将领根据自身性格特点做出决策的场景,体现《九变篇》中灵活应变和考虑将领性格弱点的思想。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义地形类型
typedef enum {
PITI, // 圮地
QUDI, // 衢地
JUEDI, // 绝地
WEIDI, // 围地
SIDI // 死地
} Terrain;
// 定义将领性格类型
typedef enum {
BRAVE, // 必死(有勇无谋,只知死拼)
COWARD, // 必生(临阵畏怯,贪生怕死)
IMPULSIVE, // 忿速(急躁易怒)
HONORABLE, // 廉洁(过于自尊)
LOVING_PEOPLE // 爱民(溺爱民众)
} GeneralCharacter;
// 根据地形和将领性格做出决策
const char* make_decision(Terrain terrain, GeneralCharacter character) {
switch (terrain) {
case PITI:
if (character == BRAVE) {
return "冒险停留,有失败风险";
} else {
return "不驻止,迅速离开";
}
case QUDI:
if (character == COWARD) {
return "不敢交合,错失机会";
} else {
return "结交诸侯,扩大势力";
}
case JUEDI:
if (character == IMPULSIVE) {
return "盲目行动,陷入困境";
} else {
return "不停留,尽快脱离";
}
case WEIDI:
if (character == HONORABLE) {
return "硬拼,可能被困";
} else {
return "巧出奇谋,突围而出";
}
case SIDI:
if (character == LOVING_PEOPLE) {
return "因顾虑民众,贻误战机";
} else {
return "殊死奋战,求生机会";
}
default:
return "未知情况,无法决策";
}
}
// 模拟战争场景
void simulate_war() {
srand(time(NULL));
// 随机选择地形
Terrain terrain = (Terrain)(rand() % 5);
// 随机选择将领性格
GeneralCharacter character = (GeneralCharacter)(rand() % 5);
const char* terrain_names[] = {"圮地", "衢地", "绝地", "围地", "死地"};
const char* character_names[] = {
"必死(有勇无谋,只知死拼)",
"必生(临阵畏怯,贪生怕死)",
"忿速(急躁易怒)",
"廉洁(过于自尊)",
"爱民(溺爱民众)"
};
printf("当前地形: %s\n", terrain_names[terrain]);
printf("将领性格: %s\n", character_names[character]);
const char* decision = make_decision(terrain, character);
printf("将领决策: %s\n", decision);
}
int main() {
simulate_war();
return 0;
}