文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
5.3 要点2:计算机不靠直觉而是机械地解决问题
计算不能自发地思考。因此计算机所执行的由程序表示的算法必须是由机械的步骤所构成。所谓“机械的步骤“就是不用动任何脑筋,只要按照这个步骤做就一定能完成的意思。众多的学者和前辈程序员们已经发明创造了很多机械地解决问题的步骤,这些步骤并不依赖人类的判断,由此构成的算法被称为”典型算法“
辗转相除法(又称欧几里德算法)就是一个机械地求解最大公约数问题的算法,在辗转相除法中分为使用除法运算和使用减法运算两种方法。使用减法运算简单易懂,步骤如图5.2所示。
图5.2 根据辗转相除法求解最大公约数的方法
用两个数中较大的数减去较小的数(步骤),反复进行上述步骤,直到两个数的值相等(步骤的终止)。如果最终这两个数相同,那么这个数就是最大公约数。请注意以下三点:(1)步骤是明确的、完全不依赖直觉的;(2)步骤是机械的、不需要动脑筋就能完成的;(3)使步骤终止的原因是明确的
使用辗转相除法求解12和42的最大公约数的程序代码如代码清单5.1所示。本章展示的程序都是用VBScript编写的。只要把代码清单5.1中的内容输入文本编辑器,保存成扩展名为.vbs的文件,双击这个文件,程序就可以运行了(如图5.3所示)。即使读不懂这段程序代码的内容也没有关系。这里需要注意的是该算法和所描述的步骤是可以直接转换成程序的。
代码清单5.1 求解12和42最大公约数的程序
a=12
b=42
while a<>b
If a>b Then
a=a-b
Else
b=b-a
End If
Wend
MsgBox “最大公约数为”&CStr(b)&“。”
图5.3 代码清单5.1的运行结果
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论