关于辗转相除法的证明,及进制表示法

一.辗转相除法

1.求最大公因子的方法(a,b) = (b,c)称为辗转相除法
  Ⅰ.其中a = qb + c; (a,b)为a,b的最大公因子。
  Ⅱ.简化了求最大公因子的工作量,因为任意整数和0的公因子为其本身。若余数c=0时,b即为最大公因子。

2.辗转相除法的证明:
  Ⅰ.因为(a,b)整除a,(a,b)整除b,根据整除的性质(即a整除b,a整除c,可以得到a整除mb+mc )可以得到(a,b)整除c,所以有(b,c)>=(a,b)(因为(a,b)是c的因子,也是b的因子,所以(b,c)>=(a,c)。)。同理可得c<=(a,b),所以可以得到结果:(a,b) = (b,c)

3.辗转相除法的递归实现


int digui(int a , int b){
	if(b==0) return b;
	return digui(b,a%b);
}

二.进制表示法

  Ⅰ.任何整数n都可以表示为a进制:r(t)*a^t + r(t-1)a^(t-1) + … +r1a + r0.
  Ⅱ.证明:对于整数n,可表示为 n = q0 * a + r0。现在将q0分解 q0 = q1 * a + r1。原式等于 n = (q1 * a + r1) * a + r0。递推可得到存在 0 <= q(t-1) < a,使得 q(t-1) = rt。所以可以得到Ⅰ中的式子。

谢谢大家的评论与支持,补充一下ha

3.补充,关于求n个数的最大公因数。

  ①.定理 我们设a1,a2,a3…a(n)为n个整数。令(a1,a2) = d1 ,(d1,a3) = d2 , (d2,a4) = d3 … (d(n-2),a(n)) = d(n-1),则 (a1,a2…an) = d(n-1)。
    i.我的理解:这个定理就是我们求解n个数的最大公因子的办法。简单说假如求3个数的最大公因子,就是求前两个数的最大公因子,接着用这个最大公因子和第三个数求最大公因子,就得出这三个数的最大公因子有点啰嗦了hah。

  ②.证明
     i.目的:证明d(n-1)等于这n个数的最大公因子,为了方便我们设( a1,a2…,an) = d。即d = d(n-1)
    ii.如何达到目的:我们可以通过证明 d | d(n-1) , d(n-1) | d,来证明d = d(n-1) 。
    iii.开始证明:①.首先证明d | d(n-1) ,因为d为最大公因子 d | ai (1 <= i <= n) ,我们可以发现d1 = xa1 + ya2 (这个是由带余除法推广出来的结论,我就不说了,要不太啰嗦了)所以d | d1 (整除的性质),d2 = xd1 + ya3 ,所以d | d2,依次类推 d | di (1 <= i <= n-1) , 可以得到d | d(n-1)。②.接下来证明d(n-1) | d ,因为(d(n-2) , an) = d(n-1) ,所以d(n-1) | an , d(n-1) | d(n-2) 。接下来看倒数第二项 (d(n-3) , a(n-1)) = d(n-2) ,可以得到d(n-2) | a(n-1) , d(n-2) | d(n-3)。根据整除的传递性,我们可以得到d(n-1) | a(n-1),以此类推我们可以得到d(n-1) | ai (1 <= i <= n-1),所以 d是a1到an的公因子,(n个数的公因子必整除他们的最大公因子,这个通过反证法很容易证明),所以d(n-1) | d。得证!

啊啊啊,开始准备用手机写来着!才发现手机也不是万能的,用手机写博客估计得累死。谢谢大家看完。笔者水平有限,难免有错,还请大家指正。谢谢!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值