谢谢观看
韩信点兵的故事
——界定项目问题
计算机已经渗透到我们的学习、工作、生活的各个方面,日常生活学习中的问题怎样“转化”成计算机能解决的问题呢?
鸡兔同笼:有若干只鸡和兔子同在一个笼子里,从上面数,有35个头,从下面数,有94只脚,问笼子里的鸡和兔子各有多少只?
思考怎么用计算机解答此题。
开始
X=1,y=35-x
Z=2x+4y
Z=94
输出
结束
X+1
yes
no
西汉大将军韩信点一队士兵的人数,三人一组余两人,五人一组余三人,七人一组余两人。这队士兵至少多少人?
÷ 3 =
÷ 7 =
÷ 5 =
……2
……2
……3
= ?
一、人工计算
7z+2
9、16、23、30、37、44、51、58 ……
2
7
5y+3
8、13、18、23、28、33、38、43 ……
3
5
3x+2
5、8、11、14、17、20、23、26 ……
2
3
被除数表达式
被除数的可能值
余数
除数
二、问题描述
1、找出问题的一般规律
假设这个数里包含有X个3,Y个5,Z个7,则满足的条件为3X+2=5y+3=7Z+2.
2、求解范围的确定
我们在进行算法设计时首先要确定求解的范围,否则计算机也无法解决这个问题。因为算法必须在有限的步骤内结束,否则没有实际意义。我们在这里假定为求X、Y、Z在1~100内变化时符合条件的值。
3、算法需求描述
我们要找出X、Y、Z在1~100范围变化时,满足3X+2=5Y+3=7Z+2的X、Y、Z,选取最小值。
当X=1时:Y=1时,Z在1——100内变化,X、Y、Z是否满足条件?
Y=2时,Z在1——100内变化,X、Y、Z是否满足条件?
Y=3时,Z在1——100内变化,X、Y、Z是否满足条件?
……
Y=100时,Z在1——100内变化,X、Y、Z是否满足条件?
当X=2时:Y=1时,Z在1——100内变化,X、Y、Z是否满足条件?
Y=2时,Z在1——100内变化,X、Y、Z是否满足条件?
Y=3时,Z在1——100内变化,X、Y、Z是否满足条件?
……
Y=100时,Z在1——100内变化,X、Y、Z是否满足条件?
……
当X=100时:Y=1时,Z在1——100内变化,X、Y、Z是否满足条件?
Y=2时,Z在1——100内变化,X、Y、Z是否满足条件?
Y=3时,Z在1——100内变化,X、Y、Z是否满足条件?
……
Y=100时,Z在1——100内变化,X、Y、Z是否满足条件?
4、算法简单描述
5、优化算法分析
相传汉高祖刘邦问大将军韩信统御兵士多少,韩信回答说,每3人一列余1人,5人一列余2人,7人一列余4人,13人一列余6人,17人一列余8人,刘邦听后茫然而不知其数。我们能够算出来韩信有多少士兵,并简单描述其算法吗?
当A=1,B=1,C=1,D=1,E在1~100内变化,ABCDE是否满足条件?
B=2,C=1,D=1,E在1~100内变化,ABCDE是否满足条件?
……
我国古代数学名著《孙子算经》中有一个“物不知数”的问题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?
尝试根据这段文字探索该题的算法。