2021-08-10

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


前言

由于本人一只对数学上各种方法的原理有着一种执着的追求,特别是当他人认为我这种行为是钻牛角尖的行为的时候,我总是会更加卖力地把这个方法的本质与原理弄懂。
如果大家想看关于更相减损法的内容,可以看我2021-8-8的文章更相减损法


一、辗转相除法操作步骤示范

现在为了能够更加直观得感受到辗转相除法的操作流程,现在通过具体的实例来说明。
咱们现在取24,60这两个数,目的就是求这两个数的最大公约数(公因数)
令a=24,b=60;操作步骤如下:
在这里插入图片描述
也就是说求两个数的最大公因数的时候,即用大的数对小的数取余,接着继续和另一个数比较,要是还是比另一个数大的话,继续对这个小的数取余。
要是发生了取余数之后比另外一个数小的话,就数值交换(比如操作2到操作3),继续取余数。
直到取余后余数的值为0,那么就可以知道这两个数的最大公约数就是最后一次使得余数为0的除数。

二、辗转相除法基本原理(辗转相除法能够求最大公约(因)数

1.准备阶段

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

哈哈😆,其实这时候用大数对小数取余得到的12与另一个数24的最大公约数也是Max。证明如下☟

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

为什么这么说呢???
因为60%24(取余)= 12,运算过程为60➗24=k…12
所以12 = 60-24k
两边同时除以它俩的公约数Pro(c为24和60的一个公约数),
即12/Pro = 60/Pro➖24k/Pro,

12/Pro = 60/Pro➖24k/Pro= (60/Pro)➖(24/Pro) *k
由于60/Pro24/Prok都为整数,所以12/Pro也为整数

那么这个Pro也是12的约数,因此Pro为余数12和另一个没有取余而是充当除数的数也就是24的“公约数”…推论2

同理,
由于60 = 12+24k如果取12和24的一个公约数Mini
那么可以推出
60/Mini=12/Mini➕24k/Mini=(12/Mini)➕(24/Mini)*k
由于12/PMini24/Minik,都为整数,所以60/Mini也为整数

那么这个Mini也是60的约数,因此Mini为60和另一个没有取余而是充当除数的数也就是24的公约数…推论3

推论2推论3可知,这两对数的公约数是共有的

那么
当这个Pro为60、24的“最大公约数”时,
也为余数12和另一个没有取余而是充当除数的数也就是24的“最大公约数”

🤔所以无论怎么样,后面的操作中无论第几步操作a和b的最大公约数都Max(比如在上图的操作1到操作5)。

3、最后一步

直到操作到最后余数的大小为0时,原始数据a和b的最大公约数就是最后一步使得余数为0的除数。
🤣哈哈,不难发现,这个例子中我们要知道的Max就是12.


总结

😜如果大家有需要的话,后续我会继续整理关于辗转相除法赫然更相减损法的通过C语言实现的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

敢敢*^_^*

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

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

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

打赏作者

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

抵扣说明:

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

余额充值