首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

用条件合并法解决中国剩余定理有关问题

2012-04-10 
用条件合并法解决中国剩余定理问题这种方法可以在小学生中运用。解题过程XML code《孙子算经》一道问题:今有

用条件合并法解决中国剩余定理问题
这种方法可以在小学生中运用。

解题过程

XML code
《孙子算经》一道问题:今有物,不知其数,三三数之,剩二;五五数之,剩三;七七数之,剩二。问物几何?解法:先列出条件,1)除以3余22)除以5除33)除以7余2求同时满足以上3个条件的数。条件合并法解法步骤:先看满足同时条件1)和2)的数。3和5的最小公倍数(3,5)为15,在15的所有余数1,2,3,4,5,6,…,13,14中,同时满足1)、2)条件的数为8。与8同类的数为:除以15余8的数。现在,将原题的3个条件合并为: 1)除以15余82)除以7余2求同时满足以上2个条件的数。15和7的最小公倍数(15,7)为105,在105的所有余数1,2,3,…,103,104中,同时满足1)、2)条件的数为23。与23同类的数为:除以105余23的数。结论:满足原题3个条件的数为除以105余23的数,最小的就是23。 再做一道:一个数,除以4少1,除以6余5,除以15余14,这个数在150~200之间,求这个数。列出条件:1)除以4余32)除以6余53)除以15余14先看满足同时条件1)和2)的数。4和6的最小公倍数(4,6)为12,在12的所有余数1,2,3,4,5,6,…,10,11中,同时满足1)、2)条件的数为11。与11同类的数为:除以12余11的数。现在,将原题的3个条件合并为:1)除以12余112)除以15余14求同时满足以上2个条件的数。 12和15的最小公倍数(12,15)为60,在60的所有余数1,2,3,…,58,59中,同时满足1)、2)条件的数为59。与59同类的数为:除以60余59的数。 结论:满足原题3个条件的数为除以60余59的数,最小的就是59。前面几项分别是:59,119,179,239,…。满足原题150~200之间的,就是179。


[解决办法]
有段时间没见版主,来就送分。
[解决办法]
学习了~~谢·
[解决办法]
不错。。。
有点意思。。
关注。。。
[解决办法]
up
[解决办法]
请问一下楼主,对于第一道题,我这样写有什么不妥:

Dim x As Long
Dim y As Long = 2
Dim z As Long = 3
Dim m As Long = 2
For x = 1 To 2147483647
If x Mod 3 = y And x Mod 5 = z And x Mod 7 = m Then
TextBox1.Text = x
MsgBox(x)
End If
Next
[解决办法]
了解,进来看看

[解决办法]
good

[解决办法]
学习了,帮顶
[解决办法]
11111111111111111111111111111111111
[解决办法]
不错,学习了
[解决办法]
学习一下啊
[解决办法]
这么牛呀
学习
[解决办法]
真的应该好好学习vb啦,向你们学习啊
[解决办法]
恩 不杂懂 得研究研究

[解决办法]

[解决办法]
帮顶~~~~~
[解决办法]
up 
JF
[解决办法]
路过,接分
[解决办法]
收藏

[解决办法]
up 学习
[解决办法]
这是在练内功,积蓄力量,适合于在校生、无业游民。

每天忙于项目者,有心练下,可都没时间研究这些了。


[解决办法]
版主的贴哦!学习了。
[解决办法]
帮顶


[解决办法]
好贴...
[解决办法]
帮顶
[解决办法]
好好
[解决办法]
学习了~~谢·
[解决办法]
学习了~~谢·
[解决办法]
合并体现在哪?

我只看出用了标准解法。。。。
[解决办法]
貌似可以做为演示用的课件....

而且可以对比暴力法培养小学生们的程序思维,呵呵
[解决办法]
水版主又开始研究算法啦!

顶下……
[解决办法]
fffff
[解决办法]
强细
[解决办法]
还好!很强大!
[解决办法]
up
[解决办法]
先记下
[解决办法]
收藏了,谢谢
小时候特喜欢这种应用题~
[解决办法]
这算是伪代码吗?看不懂
[解决办法]
先顶了,在好好琢磨一下
[解决办法]
学习了,顶
[解决办法]
学习了
[解决办法]
顶一下
[解决办法]
hao!
[解决办法]
帮顶
[解决办法]
bangding
[解决办法]
顶!
[解决办法]
学习学习.......
[解决办法]
ding
[解决办法]
up
[解决办法]
学习了 呵呵
[解决办法]
up
[解决办法]
试试看
[解决办法]
现在才开始学,要好好向各位学习。
[解决办法]
水之
[解决办法]
:)
印象中,类似的问题,与初等数论结合也很容易解决。
[解决办法]
不懂
[解决办法]
学习了
[解决办法]

探讨
请问一下楼主,对于第一道题,我这样写有什么不妥:

Dim x As Long
Dim y As Long = 2


Dim z As Long = 3
Dim m As Long = 2
For x = 1 To 2147483647
If x Mod 3 = y And x Mod 5 = z And x Mod 7 = m Then
TextBox1.Text = x
MsgBox(x)
End If
Next


[解决办法]
算法问题
很好
[解决办法]
用蒙的办法:
For i As Integer = 0 To 100
If i Mod 3 = 2 Then
If i Mod 5 = 3 Then
If i Mod 7 = 2 Then
Response.Write(i)
Exit Sub
End If
End If
End If
Next
[解决办法]
JF
[解决办法]
看一看感受不错
[解决办法]
up
[解决办法]
学习了~~
[解决办法]
将看似繁杂的条件进行合并,去繁就简,合理排除了很多无关数,效率更高。

ps:好久没来,这次刚来VB.NET版,曾经得到过楼主的帮助,又看到楼主,备感亲切。
[解决办法]
LZ的算法本质上还是穷举法,只不过用最小公倍数给穷举法设了一个循环上限。

如果这样的题目是保证有解的,LZ所设的循环上限就没有任何实际意义。

而且每一次合并条件后,要从头开始再来一次穷举,导致效率大大降低。

我认为10楼的办法才是正解。
[解决办法]
有意思。
[解决办法]
hao
[解决办法]
长知识了
[解决办法]
飘过
[解决办法]
学习了,
[解决办法]
自我评价水平超菜一直不敢露头
今发现版主给的题目很有特色,代码写的很亮
露头赞一个
[解决办法]
学习了啊
[解决办法]
牛,学习了
[解决办法]
数论的,怀念阿.....中国剩余定理
[解决办法]
help help !!!!
[解决办法]
支持一下啊
[解决办法]
好!!!鼓掌!!

热点排行