2021-08-08

通俗易懂理解更相减损法操作步骤以及基本原理(为什么更相减损法能够求最大公约(因)数)


前言

对于初学者入门C语言开始,学到递归的时候,总是避不开求最大公约数(公因数)的练习。
而遇到更相减损法和辗转相除法求最大公约数的时候又开始纠结为什么这两种方法能够求最大公约数,而一起学习的同学们又叫我不要钻牛角尖,知道怎么用就行。
但我觉得这是原理上的问题,搞不明白我不舒服,于是我再找到了多方面的资料,自己又推理了一遍,我相信从某种角度能够解决初学者的疑惑。

一、更相减损法操作步骤示范

现在为了能够更加直观的感受到更相减损法的操作流程,现在通过具体的实例来说明。
咱们现在取24、60这两个数,目的就是求这两个数的最大公约数(公因数)
令a=24,b=60;操作流程如下:
在这里插入图片描述
也就是说求两个数的最大公因数的时候,即用大的数减去另一个小的数,接着继续和另一个数比较,要是还是比另一个数大的话,继续减这个小数。
要是发生了减完比另一个数小的话,就数值交换(比如操作3到操作4),继续减。
直到最后这两个数相等为止。

二、更相减损法基本原理(为什么更相减损法能够求最大公约(因)数)

1、准备阶段

咱们还是举24、64的最大公约数这个例子。
不妨假设24和60的最大公约数为Max
那么24和60可以表示为
60 = A✖️Max(A为一个正整数)…①
24 = B✖️Max(B为一个正整数)…②
联立①和②可得
36=(60-24)=(A-B)✖️Max…③
从①和②可以知道,A和B互为质数(也就是说它俩之间除了1没有其他公约数)…推论1
因为如果不是互为质数的话,也就说A和B有除了1的公约数,它俩可以表示为
A = A1✖️C(C不是1)
B = B2✖️C(C不是1)
那么60和24的最大公约数就为C✖️Max,而不是Max,与开头的假设相互矛盾,不成立。

哈哈😄,其实这时候用大数减去小数得到的36与另一个数24的最大公约数也是Max。证明如下☟

2、证明无论第几步操作,a和b的最大公约数都是Max

为什么这么说呢???
咱们先把要用的从上面已经整出来的式子弄下来,即
36=(A-B)✖️Max
24 = B ✖️Max
这从某种角度上来讲也是可以证明的:
咱们通过反证法:
假设这个(A-B)和B不是互为质数的,那么可设(A-B)和B的最大公约数为Pro

(A-B) = α✖️Pro(α为一个正整数)…④
B = β✖️Pro(β为一个正整数)…⑤
联立④⑤得
A = (A+B)= (α+ β)✖️Pro… ⑥
比较⑤和⑥不难发现A和B有除了1之外的约数,与上面我们整出来的推论1相违背,所以(A-B)和B不是互为质数这个假设不成立。
所以,(A-B)和B互为质数(也就是说它俩之间除了1没有其他公约数)

36=(A-B)✖️Max
24 = B ✖️Max
😁那么也就是说,36和24的最大公约数也是Max
😉同理,无论怎么样,后面的操作中无论第几步操作a和b的最大公约数都是Max(比如在上图的操作1到操作5)

3、最后一步

直到操作到最后a和b的大小一样大,如上面的操作5所示。
a =12,b =12;
又因为它俩的最大公约数都是Max
😇哈哈,不难发现,这个我们要知道的Max就是12

总结

如果大家有需要的话,我会继续整理关于辗转相除法的原理和操作步骤。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敢敢*^_^*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值