charlesqwu (Charles Wu) 的博客分享 http://blog.sciencenet.cn/u/charlesqwu

博文

计算机科学导论中的迭代和递归

已有 507 次阅读 2026-9-8 11:08 |个人分类:计算机科学|系统分类:教学心得

计算机科学导论中的迭代和递归

教育部正在推进基础学科系列“101计划”。最近,我浏览了该计划中的教材《计算机科学导论——计算+、互联网+与人工智能》(战德臣、张丽杰等编,2025年高等教育出版社出版)。此书倡导了“计算思维”这种新的视角;就内容编排而言,它与美国一本非常流行的计算机科学概论教材基本相似:“Computer Science: An Overview” (J. Glenn Brookshear & Dennis Brylow, 13rd Edition published in 2019)——此书于1985年首次出版,迄今已出至第13版,这足以证明其广为流行。此书有中文版:《计算机科学概论(第13版)》[美]J.格伦•布鲁克希尔&丹尼斯•布里罗著 ,刘艺、吴英、毛倩倩译,2022年人民邮电出版社出版。

总的来说,战德臣等编的《计算机科学导论》是一本优秀的教科书。但是在叙述迭代与递归时,此书的表述并不完全准确。迭代和递归是计算机中执行重复性任务的两种模式(或称方式、控制结构):从可计算性的角度来看,它们是完全等价的。但是此书有以下两处不正确的陈述:

此书第142页

上述说法不正确,因为:阿克曼函数当然可以用迭代方式实现,并非必须通过递归来实现/执行。如果你愿意,问问某些AI 工具:它们都能对 Ackmann 函数给出迭代解决方案。

此书第150页:

上述说法不正确,因为:对于同一算法/任务,迭代实现的程序和递归实现的程序是可以相互转换的。

相比而言,Brookshear & Brylow’s《计算机科学概论(第13版)》关于迭代与递归的陈述是正确的。作为扩展阅读材料,此书还包括:《附录E: 迭代结构与递归结构的等价性 》。

从更深一层次来说,迭代与递归等价这一命题包含在邱奇-图灵论题(Church-Turing Thesis)之中。邱奇-图灵论题包含以下两个方面:

直观等价:它将日常生活中非形式化的“有效方法”或“直觉上的算法”等同于严格数学定义的图灵可计算函数——即:任何在算法上可计算的问题同样可由图灵机计算。这一部分是无法证明的,因此可以说是一个假设。

模型统一:邱奇的λ-演算、图灵的图灵机以及克莱尼的递归函数,在计算能力上是完全等价的。这一部分已在20世纪30年代由丘奇、图灵等人严格地证明;这包含:迭代结构与递归结构的等价性。

当然,采用迭代还是递归方式实现某算法/任务/程序的难易程度,以及生成的程序(代码)的执行效率,既取决于问题类型也取决于编程环境或工具。现代高级编程语言(如 Python, C++, Java)会自动处理函数的递归调用(包括函数调用机制中的堆栈),对于某些具有递归性质的算法/任务/程序,编写递归函数或过程确实要容易得多;而早期的编程语言(如 BASIC)并不支持函数的递归调用,对于相同的算法/任务/程序,采用迭代方式并显式管理堆栈可能会更容易一些。

迭代与递归、它们的等价和相互转换、以及邱奇-图灵论题是计算机科学中的核心概念与结论。如果您教授《计算机科学导论》这样的课程,希望您能向学生传授这方面正确的内容。



https://blog.sciencenet.cn/blog-322380-1551532.html

上一篇:人工智能先驱之一克劳德·香农(Claude Shannon)谈创造性思维




    
收藏 IP: 24.6.184.*| 热度|

7 杨正瓴 王涛 孙颉 崔锦华 杜占池 池德龙 徐明昆

该博文允许注册用户评论 请点击登录 评论 (5 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2026-9-19 00:22

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部