《九章算术》它是中国古代第一部数学专著,是《算经十书》中最重要的一种,成于公元一世纪左右。该书内容十分丰富,系统总结了战国、秦、汉时期的数学成就。它是一本综合性的历史著作,是当时世界上最简练有效的应用数学,它的出现标志中国古代数学形成了完整的体系。其中的“更相减损术”可以用来求两个数的最大公约数。它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。
原文是:
可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之
白话文译文:
(如果需要对分数进行约分,那么)可以折半的话,就折半(也就是用2来约分)。如果不可以折半的话,那么就比较分母和分子的大小,用大数减去小数,互相减来减去,一直到减数与差相等为止,用这个相等的数字来约分。
还是很难懂?我们分步骤来解释下:
第一步:任意给定两个正整数,判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的差和减数相等为止。
第三步:最后把第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。
这里所说的“等数”,就是最大公约数,求“等数”的办法就是“更相减损法”,所以,更相减损法也叫等值算法。
举例说明:
用更相减损术求260和104的最大公约数。
第一步:由于260和104均为偶数,首先用2约简得到130和52,再用2约简得到65和26。
第二步:此时65是奇数,而26不是奇数,故把65和26辗转相减:
65-26=39
39-26=13
26-13=13
第三步:最后把第一步中约掉的两个2和“等数”13相乘:
13×2×2=52
所以,260与104的最大公约数是52。
接下来我们如何在Scratch上用更相减损法进行上述两数求最大公约数呢?
我们设两个整数位为A和B,使用Scratch来计算A和B的最大公约数。
通过自己完成程序设计,我们不仅更熟练地掌握了计算最大公约数的方法,同时也更深刻理解了编程算法,是不是一举两得呢?