主题:韩信点兵(中国剩余定理)
163111511
[专家分:90] 发布于 2005-08-05 17:46:00
韩信点兵又称为中国剩余定理,相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人。刘邦茫然而不知其数。问最少多少兵士?
回复列表 (共34个回复)
21 楼
kkm0905 [专家分:0] 发布于 2006-12-05 17:32:00
y=3a+1
y=5b+2
y=7c+4
y=13d+6
因为y=7c+4=(7c+3)+1
而 y=3a+1
所以c是3的倍数。令c=3e
所以y=7c+4=21e+4=20e+(e+4)=5*4e+(e+4)
而y=5b+2
所以e+4=5的倍数+2
令e+4=5f+2
e=5f-2
所以y=21e+4=21(5f-2)+4=105f-38=(104f-39)+f+1=13(8f-3)+f+1
而y=13d+6
所以f+1是13的倍数+6
令f+1=13g+6
f=13g+5
所以有:y=7c+4 c=3e e=5f-2 f=13g+5
从后往前代:e=5(13g+5)-2=65g+23
c=3*(65g+23)=195g+69
y=7(195g+69)+4=1365g+487
而g只要是整数就可以了
所以g=0时y=487
最小的数就是487
而1365是3 5 7 13的最小公倍数。
22 楼
老大徒伤悲 [专家分:29120] 发布于 2006-12-08 13:48:00
也说韩信点兵。
古人说:
七子团圆半个月,
梅花花开二十一,
三人同行月五天,
去除百五便得知。
这就是韩信点兵题的解。
23 楼
雪光风剑 [专家分:27190] 发布于 2006-12-12 08:13:00
[quote]也说韩信点兵。
古人说:
七子团圆半个月,
梅花花开二十一,
三人同行月五天,
去除百五便得知。
这就是韩信点兵题的解。[/quote]
从哪找来的?ms抄都抄错
而且你和lz说的不是一道题
24 楼
雪光风剑 [专家分:27190] 发布于 2006-12-12 08:19:00
[quote]1. 5余2,说明尾数为2或7
2. 3余1,说明前面几位数的和......
3. 唉,用数学我还是想不到有什么好的办法去解了,
只好用QB的do或者for来计算了,唉,数学书到用时方恨少.
最简单的当然是逐一加四个IF来计算了,不过效率也太低了
QB程序:
以13+6为起始值 (13的条件)
考虑3的余数因素以 (最大的值13的3倍=39) 为增量 (3和13的条件)
考虑到尾数需要为2或7,(5的条件)
加增量39直到尾数为7或2 的 97 作为新的起始值
尾数要在2和7之间变化,增量是39的,只好把5的值也乘进来,(具体道理自己慢慢研究)
增量改成3*13*5=195
把7的条件作为判断的条件就可以了,
那么这个程序的速度就可以大大提高了
最后算到这个数最少是487,不知道对不对,止不止那么少?
(多多益善,少少无拘 也不至于少到这个程度吧?)
[/quote]
你的算法我就想知道一个问题
如果你以19为初始195为增量
你那个19-〉97怎么过渡来的
25 楼
moz [专家分:37620] 发布于 2006-12-12 12:11:00
[quote]以13+6为起始值 (13的条件)
考虑3的余数因素以 (最大的值13的3倍=39) 为增量 (3和13的条件)
考虑到尾数需要为2或7,(5的条件)
加增量39直到尾数为7或2 的 97 作为新的起始值[/quote]
26 楼
雪光风剑 [专家分:27190] 发布于 2006-12-12 13:55:00
晕
看漏一行,谢谢
27 楼
lzh609754893 [专家分:20] 发布于 2008-11-30 10:01:00
487!!!!!!!!!!!!!!!
28 楼
三国风云 [专家分:140] 发布于 2009-01-05 15:35:00
暑假当中,妈妈让小慧帮忙修改英文资料,英文中还有一些统计数据(统计数据都是正整数,而且其前、后都有空格)。妈妈说:如果文档结尾处有“end”,则应当删除,文中所有的统计数据都要加上一个正整数m。你能编程序完成小慧的任务吗?
输入:m
待修改后的文档(字符串)
输出:修改后的文档(字符串)
例如:输入:13
There are 45 students in 32class.end
输出:There are 58 students in 32class.
29 楼
为谁疯狂 [专家分:0] 发布于 2009-09-05 22:55:00
本人最老实:
CLS
a=19
DO
a=a+1
LOOP UNTIL a MOD 3 = 1 AND a MOD 5 = 2 AND a MOD 7 = 4 AND a MOD 13 = 6
PRINT a
END
一般一般
30 楼
phile [专家分:2310] 发布于 2009-09-06 18:48:00
CLS
DO
A=A+1
LOOP UNTIL A MOD 3=1 AND A MOD 5=2 AND A MOD 7=4 AND A MOD 13=6
PRINT A
END
我来回复