回 帖 发 新 帖 刷新版面

主题:韩信点兵(中国剩余定理)

韩信点兵又称为中国剩余定理,相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人。刘邦茫然而不知其数。问最少多少兵士?

回复列表 (共34个回复)

21 楼


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 楼

也说韩信点兵。

古人说:
七子团圆半个月,
梅花花开二十一,
三人同行月五天,
去除百五便得知。

这就是韩信点兵题的解。

23 楼

[quote]也说韩信点兵。

古人说:
七子团圆半个月,
梅花花开二十一,
三人同行月五天,
去除百五便得知。

这就是韩信点兵题的解。[/quote]
从哪找来的?ms抄都抄错
而且你和lz说的不是一道题

24 楼

[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 楼

[quote]以13+6为起始值 (13的条件)
考虑3的余数因素以 (最大的值13的3倍=39) 为增量   (3和13的条件)
考虑到尾数需要为2或7,(5的条件)
加增量39直到尾数为7或2 的 97 作为新的起始值[/quote]

26 楼


看漏一行,谢谢

27 楼

487!!!!!!!!!!!!!!!

28 楼

暑假当中,妈妈让小慧帮忙修改英文资料,英文中还有一些统计数据(统计数据都是正整数,而且其前、后都有空格)。妈妈说:如果文档结尾处有“end”,则应当删除,文中所有的统计数据都要加上一个正整数m。你能编程序完成小慧的任务吗?
输入:m
      待修改后的文档(字符串)
输出:修改后的文档(字符串)
例如:输入:13
            There are 45 students in 32class.end
      输出:There are 58 students in 32class.

29 楼

本人最老实:
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 楼

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册