计算机科学与数学基础:算法、形式语言与递归函数理论
在计算机科学和数学领域,数学语言以其精确和优雅的方式描述了计算复杂性和密码学的概念、结果和方法。本文将深入探讨算法、形式语言和递归函数理论的基础知识。
1. 算法基础
1.1 算法的定义与历史
算法是解决问题时需遵循的一组有限规则或程序。这个词源于波斯 - 阿拉伯科学家穆罕默德·伊本·穆萨·阿布·贾法尔·阿尔·花剌子模(Muhammed Ibn Musa Abu Dj´afar al Choresmi)的名字。在公元820年,他撰写了具有重大影响力的《论印度数字》(“On the Indian Numbers”),引入了十进制系统(包括数字零)。
直观上,算法在处理输入时,可能在有限步骤后成功将输入转换为解决问题的输出,也可能失败拒绝输入,甚至可能永远运行下去。判断算法是否会停止是一个难题,即停机问题。递归函数理论的一个基本结果表明,停机问题无法通过算法解决,这揭示了算法和计算机的局限性。
1.2 欧几里得算法示例
欧几里得算法是一个古老而重要的算法,用于确定两个整数 (m) 和 (n)((m ≤ n))的最大公约数 (gcd(n, m))。其伪代码如下:
EUCLID(n, m) {
if (m = 0) return n;
else return EUCLID(m, n mod m);
}
该算法通过递归调用自身,不断修改 (n) 和 (m) 的值,直到满足终止条件 (m = 0),此时 (n) 的值即为最大公约数。
超级会员免费看
订阅专栏 解锁全文
168万+

被折叠的 条评论
为什么被折叠?



