首页 > 资讯 > 游戏攻略

韩信点兵怎么通关不了(韩信点兵快速解法)

1. 韩信点兵快速解法

物不知数

韩信点兵问题最早出自《孙子算经》。《孙子算经》是中国古代非常重要的数学著作,因数学家 孙子 贡献最大而得名(关于孙子的资料不可考),大约成书于东晋十六国时期,现存最早为北宋刻本,全书分三卷:《卷上》、《卷中》、《卷下》,主要讲述 度量规定 和 算筹运算 以及基于 它们的 数学应为问题,韩信点兵为 《卷下》第二十六题 ”物不知数“,原文如下:

今有物,不知其数。三、三数之,剩二;五、五数之,剩三;七、七数之,剩二。问物几何?

答曰:二十三。

术曰:“三、三数之,剩二”,置一百四十;“五、五数之,剩三”,置六十三;“七、七数之,剩二”,置三十。并之,得二百三十三。以二百一十减之,即得。凡三、三数之,剩一,则置七十;五,五数之,剩一,则置二十一;七、七数之,剩一,则置十五。一百六以上,以一百五减之,即得。

题目翻译成现今的数学语言如下:

有一个正整数 x,知 x 除以 3 余 2、除以 5 余数 3、除以 7 余数 2, 求 x 的最小值。

这等价于求解《初等数论》中的 一次同余方程组:

《孙子算经》给出的解法如下:

寻中最小正整数 x₁ , 满足: x₁ 被 5 和 7 整除 并且 除以 3 余 1,即,5|x₁, 7|x₁ 并且 x₁ mod 3 = 1 ②

x₁ 被 5 和 7 整除,就意味着 被 5×7 = 35 整除,即, 35 | x₁,于是,令 x₁ = 35n(n ≥ 1):

当 n = 1 时 x₁ = 35,35 mod 3 = 2 不满足 ② 舍弃;

当 n = 2 时 x₁ = 70,70 mod 3 = 1 刚好满足 ②,Bingo~~~。

由于 x₁ ≡ 1 (mod 3),故 2x₁ ≡ 2 (mod 3),于是 得到 2x₁ = 140,它满足:除以 3 余 2 并且 被 5 和 7 整除。

同理,

求得满足:可被 3 和 7 整除 并且 除以 5 余 1 的最小正整数 x₂ = 21,从而得到,同样可被 3 和 7 整除 但 除以 5 余 3 的 3x₂ = 63;

求得满足:可被 3 和 5 整除 并且 除以 7 余 1 的最小正整数 x₃ = 15,从而得到,同样可被 3 和 5 整除 但 除以 7 余 2 的 2x₃ = 30;

将上面的 结果 相加 得到: x’ = 2x₁ + 3x₂ + 2x₃ = 140 + 63 + 30 = 233,则 容易验证 x‘ 是 同余方程组 (1) 的一个解 ,但是 x’ 不是 最小整数解 x。很容易可以发现 x' 减去 一个 同时 被 3、5 和 7 整除 并且 不大于 x' 的 整数,结果依然 是 (1) 的解,由于,同时 3、5 和 7 整除,就 意味着 被 3×5×7 = 105 整除,于是得出:

x = x' (mod 105)

进而,有如下算法:

令 x = x';

如果 x > 105(原文为 106 = x₁ + x₂ + x₃ ) 则 令 x = x - 105,否则 x 为 最终答案;

具体过程如下:

x = x' = 233

[x = 233 > 105]: x = x - 105 = 233 - 105 = 128

[x = 128 > 105]: x = x - 105 = 128 - 105 = 23

[ x = 23 < 105]:OK!

这样就得到了最终答案:x = 23。

将整个求解过程写成算式就是:

x = 2×70 + 3×21 + 2×15 - 2×(3×5×7) = 23

为了方便记忆,发明 珠算 和 卷尺 的明朝数学家 程大位,在其所著的 《算法统宗》 中,将 《孙子算经》的算法编成 "孙子歌诀" 如下:

三人同行七十稀,

五树梅花廿一枝,

七子团圆正半月,

除百零五便得知。

注:正半月就是十五天,除是除去(减去)之意。

韩信点兵

韩信点兵 泛指 ”物不知数“ 此类 一次同余方程组 求解问题。南宋著名数学家 秦九韶 对 《孙子算经》中的算法 进行了深入研究,将其扩展为『大衍总数术』,彻底解决了 韩信点兵问题,这就是 《初等数论》中的 中国剩余定理(也称 孙子定理):

设 m₁, m₂, ..., m_n 是 两两互素 的 正整数,那么对于任意整数 a₁, a₂, ..., a_n 组成的 一次同余方程组:

在同余意义下,必有唯一解:

其中:

验证:易知,

再结合 (3''),由 (3') 可以推出:

这就说明 (3') 的确 是 (3) 的解。

注:这里只是给出了定理的验证,并没有严格证明 同余意义下的唯一性。证明 中国剩余定理,有多种方法大家有兴趣可以参考《初等数论》。

秦九韶 分别称 M、Mᵢ 、 Mᵢ⁻¹ 为 衍母、衍数、乘率,这里的关键是求 乘率 Mᵢ⁻¹ ,方法如下:

令, r 是 Mᵢ 除以 mᵢ 的余数,即,

于是:

进而:

然后,让 mᵢ 和 r 辗转相除,得到:

到 r_k = 1 终止。如果 向下进行一步就是:

前面再加上 (4) ,整个过程 就是 欧几里得辗转相除法,因此 r_k 为 Mᵢ 和 mᵢ 的 最大公约数,而 m₁, m₂, ..., m_n 是 两两互素,于是有: r_k = (Mᵢ, mᵢ) = 1 ,这样就证明了 最后 总可以 终止于 1 的正确性。

接着,定义两个数列:

有:

即,

假设,

则:

这样归纳的证明了 (7) 成立。

当 k 为偶数时 有:

于是:

比较 (5) 得到:

当 k 为奇数时,则 k + 1 是偶数,这就要算到 (6) ,对 (6) 稍作变形:

于是,令,

并重新令:

则有:

这样我们就将 辗转相除 又延长了一步 到 k + 1,这时 k + 1 是偶数,则同理上面 情况 可得到:

因为此算法最后总会终止于 1,所以 被 秦九韶 称为『大衍求一术』,前缀 “大衍” 来自于《易经 · 系辞》:“大衍之数五十,... ...”。

当然,中国剩余定理 要求 m₁, m₂, ..., m_n 必须两两 互素,对于那些 不满足这个条件的 一次同余方程组 可以转换为 和 其 同解 的 满足这个条件的 一次同余方程组。下面举例说明:

有一筐鸭蛋,1个1个数,正好数完;2个2个数,还剩1个;3个3个数,正好数完;4个4个数,还剩1个;5个5个数,还剩1个;6个6个数,还剩3个;7个7个数,正好数完;8个8个数,还剩1个;9个9个数,正好数完。请问:框里最少有多少个鸭蛋?

按照题目所述,列同余方程组如下:

显然 1, 2, 3, 4, 5, 6, 7, 8, 9 并不两两互素,因此需要简化:

一个数字必然被 1 整除,因此 ① 没有意义,删除; 一个数字被 9 整除,必然会被 3 整除,因此 保留 ⑨ 删除 ③;一个数字 被 8 除余 1,则可以表示为 8x + 1,进而有 2(4x) + 1,4(2x) + 1,于是 x 一定 可以被 2 和 4 整除,因此 保留 ⑧ 删除 ② 和 ④;目前已经保证了 被 2 除 余 1,可表示为 2x + 1,也保持了 被 3 整除,于是有 3(2x + 1) = 6x + 1,这说明 目前已经保持了 被 6 除 余 3,因此 ⑥ 可以被删除;最后剩下 ⑤ 和 ⑦ 保留。得到:

则 (8') 和 (8) 等价。由于 5,7,9,8 两两互素,符合 中国剩余定理 要求,于是解:

◆M = m₁ m₂ m₃ m₄ = 5 × 7 × 8 × 9 = 2520

◆M₁ = 7 × 8 × 9 = 504

M₁ = q m₁ + r, 504 = 100 × 5 + 4 , c₀ = 1;

m₁ = q₁ r + r₁, 5 = 1 × 4 + 1, c₁ = q₁ = 1; (r₁ = 1,下标 1 是奇数,需要再算一步 )

r = q₂ r₁ + r₂, 4 = 3 × 1 + 1, c₂ = q₂c₁ + c₀ = 3 × 1 + 1 = 4;(得到结果)

M₁⁻¹ = 4, M₁⁻¹ M₁a₁ = 4 × 504 × 1 = 2016;

◆ 由于 a₂ = 0 所以 M₂⁻¹ M₂a₂ = 0;

◆M₃ =5 × 7 × 9 = 315

M₃ = q m₃ + r, 315 = 39 × 8 + 3 , c₀ = 1;

m₃ = q₁ r + r₁, 8 = 2 × 3 + 2, c₁ = q₁ = 2;

r = q₂ r₁ + r₂, 3 = 1 × 2 + 1, c₂ = q₂c₁ + c₀ = 1 × 2 + 1 = 3;(r₂ = 1,下标 2 是偶数,得到结果)

M₂⁻¹ = 3, M₂⁻¹ M₂a₂ = 3 × 315 × 1 = 945;

◆由于 a₄ = 0 所以 M₄⁻¹ M₄a₄ = 0;

得到:

x = M₁⁻¹ M₁a₁ + M₂⁻¹ M₂a₂ + M₄⁻¹ M₄a₄ = 2016 + 0 + 945 + 0 = 2961

x > M, x = x - M = 2961 - 2520 = 441

最终答案:框里最少有 441 个鸭蛋。

最后,需要说明的是:

数学大神欧拉和高斯 对于 一般一次同余式进行了详细研究,独立的得到了 中国剩余定理,后来证实 与 秦九韶『大衍求一术』相同,于是才命名该定理为:中国剩余定理。

中国剩余定理,在《抽象代数》中还有另外的形式,不过这就扯远了,就此打住。

(由于本人数学水平有限,出错在所难免,欢迎各位老师批评指正!)

2. 韩信点兵快速解法大全

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。

输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。

3. 韩信点兵问题最适合用的方法

韩信点兵的数学解法

  我国汉代有一位大将,名叫韩信。他每次集合部队,都要求部下报三次数,第一次按1~3报数,第二次按1~5报数,第三次按1~7报数,每次报数后都要求最后一个人报告他报的数是几,这样韩信就知道一共到了多少人。他的这种巧妙算法,人们称为“鬼谷算”、 “隔墙算”、“秦王暗点兵”等。

  这种问题在《孙子算经》中也有记载:“今有物不知其数:三三数之余二,五五数之余三,七七数之余二,问物几何?” 它的意思就是,有一些物品,如果3个3个的数,最后剩2个;如果5个5个的数,最后剩3个;如果7个7个的数,最后剩2个;求这些物品一共有多少?人们通常把这个问题叫作“孙子问题”, 西方数学家把它称为“中国剩余定理”。现在,这个问题已成为世界数学史上著名的问题。

  到了明代,数学家程大位把这个问题的算法编成了四句歌诀:

  三人同行七十稀,五树梅花廿一枝;

  七子团圆正半月,除百零五便得知。

  用现在的话来说就是:一个数用3除,除得的余数乘70;用5除,除得的余数乘21;用7除,除得的余数乘15。最后把这些乘积加起来再减去105的倍数,就知道这个数是多少。

  《孙子算经》中这个问题的算法是:

  70×2+21×3+15×2=233

  233-105-105=23

  所以这些物品最少有23个。

  根据上面的算法,韩信点兵时,必须先知道部队的大约人数,否则他也是无法准确算出人数的。你知道这是怎么回事吗?

  这是因为,

  被5、7整除,而被3除余1的最小正整数是70;

  被3、7整除,而被5除余1的最小正整数是21;

  被3、5整除,而被7除余1的最小正整数是15。

  所以,这三个数的和是15×2+21×3+70×2,必然具有被3除余2,被5除余3,被7除余2的性质。

  以上解法的道理在于:

  被3、5整除,而被7除余1的最小正整数是15;

  被3、7整除,而被5除余1的最小正整数是21;

  被5、7整除,而被3除余1的最小正整数是70。

  因此,被3、5整除,而被7除余2的最小正整数是 15×2=30;

  被3、7整除,而被5除余3的最小正整数是 21×3=63;

  被5、7整除,而被3除余2的最小正整数是 70×2=140。

  于是和数15×2+21×3+70×2,必具有被3除余2,被5除余3,被7除余2的性质。但所得结果233(30+63+140=233)不一定是满足上述性质的最小正整数,故从它中减去3、5、7的最小公倍数105的若干倍,直至差小于105为止,即 233-105-105=23。所以23就是被3除余2,被5除余3,被7除余2的最小正整数。

4. 韩信点兵快速解法视频

中国剩余定理

民间传说着一则故事——“韩信点兵”。

秦朝末年,楚汉相争。一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。韩信马上向将士们宣布:我军有1073名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。汉军本来就信服自己的统帅,这一来更相信韩信是“神仙下凡”、“神机妙算”。于是士气大振。一时间旌旗摇动,鼓声喧天,汉军步步进逼,楚军乱作一团。交战不久,楚军大败而逃。

首先我们先求5、9、13、17之最小公倍数9945(注:因为5、9、13、17为两两互质的整数,故其最小公倍数为这些数的积),然后再加3,得9948(人)。

在一千多年前的《孙子算经》中,有这样一道算术题:

“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”按照今天的话来说:一个数除以3余2,除以5余3,除以7余2,求这个数.

这样的问题,也有人称为“韩信点兵”.它形成了一类问题,也就是初等数论中解同余式.这类问题的有解条件和解的方法被称为“中国剩余定理”,这是由中国人首先提出的.

① 有一个数,除以3余2,除以4余1,问这个数除以12余几?

除以3余2的数有:

2, 5, 8, 11,14, 17, 20, 23….

它们除以12的余数是:

2,5,8,11,2,5,8,11,….

除以4余1的数有:

1, 5, 9, 13, 17, 21, 25, 29,….

它们除以12的余数是:

1, 5, 9, 1, 5, 9,….

一个数除以12的余数是唯一的.上面两行余数中,只有5是共同的,因此这个数除以12的余数是5.

如果我们把①的问题改变一下,不求被12除的余数,而是求这个数.很明显,满足条件的数是很多的,它是 5+12×整数,

整数可以取0,1,2,…,无穷无尽.事实上,我们首先找出5后,注意到12是3与4的最小公倍数,再加上12的整数倍,就都是满足条件的数.这样就是把“除以3余2,除以4余1”两个条件合并成“除以12余5”一个条件.《孙子算经》提出的问题有三个条件,我们可以先把两个条件合并成一个.然后再与第三个条件合并,就可找到答案.

②一个数除以3余2,除以5余3,除以7余2,求符合条件的最小数.

先列出除以3余2的数:

2, 5, 8, 11, 14, 17, 20, 23, 26,…,

再列出除以5余3的数:

3, 8, 13, 18, 23, 28,….

这两列数中,首先出现的公共数是8.3与5的最小公倍数是15.两个条件合并成一个就是8+15×整数,列出这一串数是8, 23, 38,…,再列出除以7余2的数 2, 9, 16, 23, 30,…,

就得出符合题目条件的最小数是23.

事实上,我们已把题目中三个条件合并成一个:被105除余23.

那么韩信点的兵在1000-1500之间,应该是105×10+23=1073人

中国有一本数学古书「孙子算经」也有类似的问题:「今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?」

答曰:「二十三」

术曰:「三三数之剩二,置一百四十,五五数之剩三,置六十三,七七数之剩二,置三十,并之,得二百三十三,以二百一十减之,即得。凡三三数之剩一,则置七十,五五数之剩一,则置二十一,七七数之剩一,则置十五,即得。」

孙子算经的作者及确实著作年代均不可考,不过根据考证,著作年代不会在晋朝之后,以这个考证来说上面这种问题的解法,中国人发现得比西方早,所以这个问题的推广及其解法,被称为中国剩余定理。中国剩余定理(Chinese Remainder Theorem)在近代抽象代数学中占有一席非常重要的地位。

韩信被贬淮阴侯时高祖找他聊天 高祖说:韩信你说寡人我能带多少兵。 韩信说:10万绝对不能超过10万。高祖又说:你呢。韩信说:韩信点兵 多多益善. 高祖说:那你不是比我还厉害吗,那你为什么会被寡人抓到呢。韩信说:皇上您是将之将 我是兵之将 当然不如陛下您

5. 韩信点兵5种解法

假设人数不超过10000人。首先我们先求5、9、13、17之最小公倍数9945(注:因为5、9、13、17为两两互质的整数,故其最小公倍数为这些数的积),然后再加3,得9948(人)这个数就满足要求。

上一篇:猎人宝宝拿什么天赋好(猎人宝宝拿什么天赋好一点)

下一篇:最常用的红色铭文(王者所有红色铭文)