古代数学算法的魅力与发展
1. 欧几里得算法:迭代与递归的智慧
欧几里得算法用于求两个数的最大公约数(GCD)。迭代版本中,每次用两数之差替换较大的数,使两数逐渐变小,最终差值为零,此时两数相等,即为 GCD。
递归版本的欧几里得算法步骤如下:
1. 输入一对数字。
2. 用较大数减去较小数。
3. 用得到的差值替换较大数。
4. 如果两数相等,输出其中一个数,它就是 GCD;否则,将新的一对数再次应用此算法。
例如,对于 18 和 12,先计算 18 - 12 = 6,新的一对数为 12 和 6;再计算 12 - 6 = 6,此时两数相等,GCD 为 6。
递归版本的欧几里得算法不仅有效且高效,还具有对称性、美感和优雅性,是伟大算法的典范。
2. 埃拉托斯特尼筛法:寻找质数的古老方法
公元前 3 世纪,埃拉托斯特尼(Eratosthenes)担任亚历山大图书馆馆长,他最著名的成就是测量了地球的周长。同时,他还发明了寻找质数的重要算法——埃拉托斯特尼筛法。
质数是除了 1 和自身外没有其他整数约数的数,如 2、3、5、7、11 等。寻找质数是一项具有挑战性的任务,即使有现代计算机,发现新的质数也很耗时。
埃拉托斯特尼筛法的操作步骤如下:
1. 列出从 2 开始你想寻找质数的数字列表。
2. 重复以下步骤:
- 找到第一个未被圈出或划掉的数字。
- 圈出它。
- 划掉该数字的所有倍数。
3. 当所有数字都被圈出或划掉时,停止重复。
4. 圈出的数字就是质数。
超级会员免费看
订阅专栏 解锁全文
33

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



