【案例1】
韩信是秦末汉初的著名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数.
韩信先令士兵排成3列纵队,结果有2人多余;接着他立刻下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行.韩信看此情形,立刻报告共有士兵2333人.
众人都愣了,不知韩信用什么办法清点出准确人数的.
这个故事是否属实,已无从查考,但这个故事却引出一个著名的数学问题,即闻名世界的“孙子问题”.
这种神机妙算,最早出现在我国《算经十书》之一的《孙子算经》中,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三.”
所以人们将这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.
【算法设计思想】
“孙子问题”相当于求关于x ,y ,z 的不定方程组⎧m =3x +2⎪⎨m =5y +3
⎪m =7z +2⎩的整数解.
设所求的数为m ,根据题意,m 应同时满足下列三个条件:
(1)m 被3除后余2,即Mod (m , 3) =2;
(2)m 被5除后余3,即Mod (m , 5) =3;
(3)m 被7除后余2,即Mod (m , 7) =2;
首先,从m =2开始检验条件,若3个条件中有任何一个不满足,则m 递增1,当m 同时满足3个条件时,输出m .
【流程图】【伪代码】
【案例1】
韩信是秦末汉初的著名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数.
韩信先令士兵排成3列纵队,结果有2人多余;接着他立刻下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行.韩信看此情形,立刻报告共有士兵2333人.
众人都愣了,不知韩信用什么办法清点出准确人数的.
这个故事是否属实,已无从查考,但这个故事却引出一个著名的数学问题,即闻名世界的“孙子问题”.
这种神机妙算,最早出现在我国《算经十书》之一的《孙子算经》中,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三.”
所以人们将这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.
【算法设计思想】
“孙子问题”相当于求关于x ,y ,z 的不定方程组⎧m =3x +2⎪⎨m =5y +3
⎪m =7z +2⎩的整数解.
设所求的数为m ,根据题意,m 应同时满足下列三个条件:
(1)m 被3除后余2,即Mod (m , 3) =2;
(2)m 被5除后余3,即Mod (m , 5) =3;
(3)m 被7除后余2,即Mod (m , 7) =2;
首先,从m =2开始检验条件,若3个条件中有任何一个不满足,则m 递增1,当m 同时满足3个条件时,输出m .
【流程图】【伪代码】