返回介绍

5.3 要点2:计算机不靠直觉而是机械地解决问题

发布于 2023-05-19 17:35:11 字数 1141 浏览 0 评论 0 收藏 0

计算不能自发地思考。因此计算机所执行的由程序表示的算法必须是由机械的步骤所构成。所谓“机械的步骤“就是不用动任何脑筋,只要按照这个步骤做就一定能完成的意思。众多的学者和前辈程序员们已经发明创造了很多机械地解决问题的步骤,这些步骤并不依赖人类的判断,由此构成的算法被称为”典型算法“

辗转相除法(又称欧几里德算法)就是一个机械地求解最大公约数问题的算法,在辗转相除法中分为使用除法运算和使用减法运算两种方法。使用减法运算简单易懂,步骤如图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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文