韩信点兵 编辑

成语

韩信点兵韩信点兵

韩信点兵的成语来淮安民间传说。常与多多益善搭配。寓意越多越好。

刘邦问他:“你觉得我可以带兵多少?”

韩信:“最多十万。”

刘邦不解的问:“那你呢?”

韩信自豪地说:“越多越好,多多益善嘛!

刘邦半开玩笑半认真的说:“那我不是打不过你?”

韩信说:“不,主公是驾驭将军的人才,不是驾驭士兵的,而将士们是专门训练士兵的。”

基本信息

编辑

中文名:韩信点兵

涉及人物:刘邦、韩信

传说来源:江苏淮安

相关成语:韩信点兵,多多益善

成语故事

编辑
淮安民间传说着一则故事——“韩信点兵”,其次有成语“韩信点兵,多多益善”。

韩信带1500名兵士打仗,战死四五百人,站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出3人。韩信很快说出人数:1004。

算术题目

编辑
在一千多年前的《孙子算经》中,有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”按照今天的话来说:一个数除以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。

用C语言来表达这个算法:

#include<cstdio> int main() {     int a=0,b=0,c=0,x;     scanf("%d%d%d",&a,&b,&c);     printf("%d%d%d\n",a,b,c);     for(x=10;x<=100;x++)         if(x%3==a&&x%5==b&&x%7==c)         {             printf("%d",x);             break;         }         else if(x==100)             printf("noanswer\n");     return 0; }