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

谌海飞


这个叫中国剩余定理或者孙子定理,出自我国南北朝时期的著名算术著作中.在大学里属于数论里同余的知识.我们可以用同余的知识解决此问题.这句话说的是有一个数,除以3余数是2,除以5余数是3,除以7余数是2,问这个数是几?

要解决这个问题,首先我们得知道同余的基本概念,设满足题目的数为X,则题目的信息可以表示为以下几个式子

上面构成的同余式叫做一元线性同余方程组,由中国剩余定理可知,因为3、5、7是互质的,则同余方程有解.其通解是由下方来构造的,首先我们看到中国剩余定理,如下

我们根据上面这个定理来解决这个同余方程.满足题意的最小整数是23.

可以看出,当我们选择不同的衍数时,就可以得到不同的数字了.当然也可以由得到的数字加或者减最小公倍数的整数倍就可以.上面可能理论性太强,看不懂.但下面是这个问题的通俗解法,可以对照着看一下.

其实,这个问题,明朝数学家程大位在里用一首歌谣概括了它的解法:

"三人同行七十稀,五树梅花二十一,七子团圆正半月,除百零五便得知."

其实它就是此问题的通俗解法.

中国剩余定理是为数不多的享誉世界的定理之一,在密码学中有非常重要的作用.我是学霸数学,欢迎关注!


学霸数学


题主小时候有没有听过一首歌谣:

“三人同行七十稀,五树梅花二十一,七子团圆正半月,除百零五便得知。”

实际上这个歌谣是一个古老数学题的解法。


韩信点兵

在数学典籍《孙子算经》中,有许多著名的数学问题。其中最有名的是“鸡兔同笼”问题。除此之外,另一个流传很广的经典问题,被后人称为“物不知数”问题:

“有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”


意思是说:有一堆物体不知道有几个。如果三个三个分组,最后会剩下2个;如果五个五个分组,最后会剩下3个;如果七个七个分组,最后会剩下2个。问这些物体一共有几个?


后来,人们为了让这个问题更具体化,就把它改编成“韩信点兵”问题。

有一次战斗后,韩信要清点士兵的人数。让士兵三人一组,就有两人没法编组;五人一组,就有三人无法编组;七人一组,就有两人无法编组。那么请问这些士兵一共有几人?


宋朝数学家秦九韶在《数书九章》中对这个问题做出了完整系统的解答。明朝数学家程大位在《算法统宗》中将解法编成易于上口的《孙子歌诀》,就是文初的那首歌谣。


同余

现在我们一起来解决这个问题。首先我们来了解一下同余的概念。a和b关于c同余,意思是说a除以c和b除以c的余数相同。例如:8÷5=1余3,3÷5=0余3,所以8和3关于5同余,写作8≡3(mod 5),其中mod读作“模”。而且,由于3小于5,所以3本身就是3除以5的余数,因此8≡3(mod 5)也可以理解为8除以5的余数是3。


这样,韩信点兵问题就可以表示为数学语言了。有一个数字x,除以3余2,除以5余3,除以7余2, 那么这个数字是多少?数学写法是

对于这个问题,最基本的解法是穷举法,就是把满足每个条件的数字写出来,然后找到相同的数字。

  1. 除以3余数是2的数字有:2、5、8、11、14、17、20、23、26…

  2. 除以5余数是3 的数字有:3、8、13、18、23、28…

  3. 除以7余数是2的数字有:2、9、16、23、30…

  4. 我们发现,满足三个条件的第一个数字是23。所以23是这个问题的一个解。

但是,这个问题的解并不是唯一的。3、5、7彼此互质,它们的最小公倍数是105。也就是说,105除以3、除以5或者除以7都没有余数。如果一个数字x是满足要求的,那么在x上加上几个105都不会改变它对3、5、7的余数。比如,23是满足要求的,那么23+105=128也是满足要求的,23+210=233也是满足要求的。

所以这个问题最后的解就是23+105n,其中n=0,1,2,3…


歌谣

那么,程大位在《算法统宗》中的歌谣又是什么意思呢?其实这个口诀是一个快速的算法,那就是:

  1. 三人同行七十稀:将除以3的余数乘以70;

  2. 五树梅花二十一:将除以5的余数乘以21;

  3. 七子团圆正半月:将除以7的余数乘以15(半个月);

  4. 除百零五便得知:将以上三个数字相加,最后减去几个105。


例如在“韩信点兵”问题中,除以3的余数是2,除以5的余数是3,除以7的余数是2,那么前三句话就是70×2+21×3+15×2=233,233减去105等于128,128减去105=23,那么23、128、233等就都是这个问题的答案。


这个口诀的证明其实也并不难:

  1. 70这个数字是5和7的倍数,并且除以3余1,也就是说,任何一个数添加一个70之后,不会改变除以5和7的余数,但是会在除以3的余数中多1。这样如果所求的数字除以3余2,就应该包含2个70,即70×2。

  2. 21这个数字是3和7的倍数,并且除以5余1, 也就是说,任何一个数添加了一个21之后不会改变除以3和7的余数,但是会在除以5的余数中多1。这样如果所求的数字除以5余3, 就应该包含3个21,即21×3。

  3. 15这个数字是3和5的倍数,并且除以7余1, 也就是说,任何一个数添加了一个15之后不会改变除以3和5的余数,但是会在除以7的余数中多1。这样如果所求的数字除以7余2, 就应该包含2个15,即15×2。

  4. 将以上三个数字相加得到233,就可以得到一个满足条件:除以3余2,除以5余3,除以7余2的数字。

  5. 105这个数字是3、5、7的公倍数,因此一个数字加上或者减去105之后,不会改变除以3、5、7的余数,因此在刚才得到的233上添加或者减去几个105,都是问题的解。

  6. 最终,通过口诀我们还是可以得到通解:23+105n,其中n=0,1,2,3…


中国剩余定理

余数问题是一个重要的数学问题,是计算机密码学的基石之一。世界著名的数学家欧拉、高斯等人,都曾经研究过这个问题。中国古代的先贤在这方面取得了丰硕的成果。“韩信点兵”问题只是一个例子,这样的问题有更加普遍和系统化的表示方法。而这个方法,就被世界称为“中国剩余定理”,是我国为数不多的获得世界公认的古代数学成就之一。


李永乐老师


相信每个男人都有过“金戈铁马,气吞万里如虎”的想象

假如有一天,你穿越到楚汉相争时期成为韩信......

话说秦朝末年,楚汉相争。有一次,韩信带领1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是,韩信整顿兵马也返回大本营。

当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。

他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。

韩信马上向将士们宣布:我军有1073名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。汉军本来就信服自己的统帅,这一来更认为韩信是“神仙下凡”、“神机妙算”。于是士气大振。一时间旌旗摇动,鼓声喧天,汉军步步进逼,楚军乱作一团。交战不久,楚军大败而逃。

那么问题来了,韩信是如何知道将士的人数的呢?假如有一天,你穿越到古代成为韩信,身边只有一台装有EXCEL的电脑,你能够带领将士杀出重围吗?

我们先把问题翻译成数学语言:已知一个正整数X,1000

咋一看,用EXCEL似乎办不到呀,我们先用一个笨方法来解决,穷举!从1000验算到1100,不就100个数嘛!

1000=3*333+1,一看就不对,下一个

1001=3*333+2,诶,对了,继续,1001=5*200+1,不对......

Oh,My God,我佛真主耶稣保佑,这得算到何年何月!可这正是电脑擅长的呀,来看EXCEL是怎么算的:

解法一

我们现在A列列出1000至1100的数字,然后分别在B,C,D列对3、5、7取余数,如果余数分别等于2,3,2就恰好得到了我们的将士人数,

公式为:=MOD($A2,B$1)

验证公式为:=IF((B2=2)*(C2=3)*(D2=2),"将士总人数为:"&A2,"不符要求")

这样就求出了我们的将士总人数,借用EXCEL,你也可以带兵打仗啦!

解法二

有些同学可能会说,这样求解表格太大了,不够优雅,我们来个优雅的!在EXCEL中任意单元格输入以下公式:

="将士总人数为:"&SUMPRODUCT(ROW(1000:1100),(MOD(ROW(1000:1100),3)=2)*(MOD(ROW(1000:1100),5)=3)*(MOD(ROW(1000:1100),7)=2))

是不是超级神奇?这个函数的思路和上面的思路是一致的,都是枚举法的运用,其计算过程可分为以下几步:

第一步:ROW(1000:1100):生成1000~1100的数组

第二步:用MOD函数分别对其取余

第三步:当余数同时满足除3余2,除5余3,除7余2时,即得到将士人数

本文涉及的函数主要有:

MOD,求余函数,语法:MOD(被除数,除数)

IF,条件函数,语法:IF(逻辑条件,事件A,[事件B]),当逻辑条件为真时,返回事件A,反之,返回事件B

SUMPRODUCT,数组相乘再求和,语法:SUMPRODUCT(数组1,[数组2]......)

ROW,返回单元格的行号,语法:ROW(单元格引用)

本文涉及的函数都是基础函数,结合起来却有妙用,函数是基础,算法思维才是根本,理解背后的逻辑,解题易如反掌!

问题延伸

“韩信点兵”问题又被称为“中国剩余定理”、“大衍求一术”、“鬼谷算”等,和《九章算术》中的“物不知数”问题为同类问题,属于现代数论中求解一次同余式方程组问题,

秦九韶所发明的“大衍求一术”,即现代数论中一次同余式组解法,是中世纪世界数学的最高成就,比西方1801年著名数学家高斯(Gauss,1777—1855年)建立的同余理论早554年,被西方称为“中国剩余定理”。秦九韶不仅为中国赢得无上荣誉,也为世界数学作出了杰出贡献。若您有兴趣,可作进一步了解!

欢迎留言探讨

我是 EXCEL精选技巧,每天带您学习一个EXCEL精选技巧,实用,干货更有趣!


Excel精选技巧


首先可设: A=3×5×7=105,B=3×5=15,C=3×7=21,D=5×7=35。

15为3、5整除而为7除余1,故配以系数2,2B=30为7除余2;

21为3、7整除而为5除余1,故配以系数3,3C=63为5除余3;

35为5、7整除而为3除余2。

从而:2B+3C+D=128 必是为3除余2,为5除余3,为7除余2的数。

但这不是满足要求的最小自然数。

容易得知:128-A=128-105=23也必然是满足要求的自然数,并且是其中最小的。

事实上,所有自然数x=23+105k都满足要求。

以上就是根据中国剩余定理的标准解法;属于初等数论里的内容。真正能理解的人会发觉非常妙。这是数学里最优美的一个基础定理,不在于其公式的形式而在于思想。若用公式化表述是很繁琐的,这里就不赘述了。

化用中国剩余定理的基本精神,具体到这道题,还可以有如下的简便算法:

三三数之剩二的最小自然数是5;

令5加上一个最小的3倍数直至为5除剩3,于是得8;

令8再加上一个最小15倍数直至为7除剩2,于是得23。

这个解法才是正确打开的小学算术解,也是绝大多数大人也掌握不好的小学算法。


建章看世界


这个数是21(5m+1)+2,m为自然数,即这个数最小为23。

虽然没学过孙子定理和中国剩余定理,但是用我那微薄的数学基础也能解呀。

解题思路:

根据题意:三三余二,五五余三,七七余二,

说明这个数减去2后是3、7的倍数,即21的倍数,设这个数为x,则:

x=21n+2,式中n≥1

又因为这个数除以5余3,所以这个数的尾数为3或8

也就是说21n+2的尾数为3或8;

当n为1、11、21、31……可表示为10m+1(m为自然数),尾数为3,满足条件;

当n为6、16、26、36……可表示为10m+6即5m+1(m为自然数),尾数为8,也满足条件

综上,n为5m+1(m为自然数)时,满足尾数为3或8的条件。

即这个数为21(5m+1)+2,m为自然数。



小黑小黑Luo


感谢邀请,头条君怎么知道我喜欢数学呢?就凭我零星的碎片化记忆试着解答下:

t=3x+2=5y+3=7z+2

则3x=7z=t-2

也就是说这个t-2是21的倍数,我们就可以假设t-2为21 42 63 84 105 126等,

而且这个t-2还要是5的倍数+1,所以呢t-2=21,126......21的5n+1倍都是合适的数值。

那么这个t-2=21(5n+1)

则t=21(5n+1)+2


生活中有你更美


我也不知道怎么回事,可以通过列举法得出第一个数23,然后3/5/7的最小公倍数是105,可以把105看成公差(我也不知道咋回事),所以通项公式是y=105x+23,具体我也不知道怎么回事,你可以问问老师。


小潘随手拍


这个是韩信暗点兵的算法。相传韩信布兵打仗,回来后兵卒报剩余人数就是用数三余几,数五余几,数七余几汇报。这是有口诀的。口诀如下:

数三剩一念七十,五马分尸二十一,夫妻团圆整半月,加减百五是正时。意思是说,当三三数余一时,这个数计作七十。当五五数余一时,这个数计作二十一,当七七数余一时,这个数计作十五。然后用各自的计数乘以各自的余数得到的积相加的总和数,减去一百零五便是正数了。解释起来麻烦。以上题为例:三三剩二,即70X2=140,五五剩三,即21x3=63。七七剩二,即15X2=30。140十63十30一105一105=23。23便是上题的答案。为什么要减两次105呢?是因为求的最小值😊😊。


夜数繁星


太简单,三的余数乘5*725的积乘2加5的余数乘3与7的积21加7的余数成3和5的积15的和减去3.5.的积105的倍数,为什么不乘35呢?因为35除三得70除3余1...21除5余1.15除7余1正好是本系数的整数倍,可以推广到其他三个互质数。讲得不明白请原谅。


135aaa


题:除3余2,除5余3,除7余2。

除3或7都余2,且3和7的最小公倍数为21,所以此数等于21a+2(a为自然数),除5余3,则此数也等于5b+3。所以21a+2=5b+3☞☞a=5(b-4a)+1☞☞令k=b-4a则a=5k+1☞☞n(此题所求数之值)=105k+23☞☞b=21k+4

最终答案:n=105k+23(k为任意自然数)

最小数为23。


分享到:


相關文章: