gcd推导
欧几里得算法有性质: gcd(a, b)=gcd(b, a%b);
那么如何证明呢~
法1:
我们先假设其成立并且有
gcd(a, b)=gcd(b, a%b)=d;
a=k*b+c即a%b=c(我们假设a>=b, 因为a<b的话那么gcd(b, a%b)就相当于交换一下a, b的位置啦);
那么有d|a=d|k*b+d|c (d|a表示a整除d),即在d是(a, b)的公约数的前提下我们可以得到d也是(b, c)的公约数.
假设(a, b)的公约数集合为A, (b, c)的公约数集合为B, 那么有B为A的子集, 如果我们能再证得A为B的子集的话,那么就有A=B,所以A, B中的最大元素也相等,即gcd(a, b)=gcd(b, c);
对于后者的证明我们不防再假设d'|(b, c), 即d'|b , d'|c, 又 a=k*b+c, 所以有 d'|a=d'|k*b+d'|c, 即在d'是(b, c)公约数的前提下我们可以得到d'也是(a, b)的公约数.
综上所述 A=B, 所以gcd(a, b)=gcd(b, c)=gcd(b, a%b). (其实通过这里我们可以看出gcd()里面参数的顺序也是不影响答案的);
法2:
我们先假设
gcd(a, b)=gcd(b, a%b)=d;
x*d=a, y*d=b;
a=k*b+c即gcd(a, b)=gcd(b, c);
则有 c=a-k*b=x*d-k*y*d=(x-k*y)*d;
这里如果我们能证明 gcd(y, x-k*y)=1的话,我们就能证明gcd(b, c)=d啦(很显然嘛,y与x-k*y互质的话,b与c的最大公约数为d)~
我们假设gcd(y, x-k*y)=gg, y=gg*h, x-k*y=gg*j, 那么x=gg*j+k*y=gg*j+k*gg*h, 所以a=x*d=d*gg*(j+k*h), b=y*d=d*gg*h, 所以有gcd(a, b)>=d*gg;
又因为我们前面假设了gcd(a, b)=d, 所以gg=1, 即gcd(y, x-k*y)=1;
所以原式得证~
⊆
gcd推导的更多相关文章
- HDU 2685 GCD推导
求$(a^n-1,a^m-1) \mod k$,自己手推,或者直接引用结论$(a^n-1,a^m-1) \equiv a^{(n,m)}-1 \mod k$ /** @Date : 2017-09-2 ...
- 数学--数论--HDU 5382 GCD?LCM?(详细推导,不懂打我)
Describtion First we define: (1) lcm(a,b), the least common multiple of two integers a and b, is the ...
- zoj.3868.GCD Expectation(数学推导>>容斥原理)
GCD Expectation Time Limit: 4 Seconds Memory Limit: 262144 KB ...
- hdu 5512 Pagodas 扩展欧几里得推导+GCD
题目链接 题意:开始有a,b两点,之后可以按照a-b,a+b的方法生成[1,n]中没有的点,Yuwgna 为先手, Iaka后手.最后不能再生成点的一方输: (1 <= n <= 2000 ...
- HDU1792A New Change Problem(GCD规律推导)
A New Change Problem Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- 【推导】zoj3846 GCD Reduce
题意:给你n个正整数a1...an,一次操作是选择任意两个数ai,aj,将它们都替换成gcd(ai,aj).让你在5n步内将所有数变为1.或者输出不可能. 如果所有数的gcd不为1,显然不可能. 否则 ...
- 【推导】Codeforces Round #410 (Div. 2) C. Mike and gcd problem
如果一开始就满足题意,不用变换. 否则,如果对一对ai,ai+1用此变换,设新的gcd为d,则有(ai - ai+1)mod d = 0,(ai + ai+1)mod d = 0 变化一下就是2 ai ...
- GCD - Extreme (II) for(i=1;i<N;i++) for(j=i+1;j<=N;j++) { G+=gcd(i,j); } 推导分析+欧拉函数
/** 题目:GCD - Extreme (II) 链接:https://vjudge.net/contest/154246#problem/O 题意: for(i=1;i<N;i++) for ...
- BZOJ 2820: YY的GCD 莫比乌斯反演_数学推导_线性筛
Code: #include <cstdio> #include <algorithm> #include <cstring> #include <vecto ...
随机推荐
- php环境的搭建
Windows下php作为Apache的子模块加载 1.安装Apache后,找到httpd.conf文件,加入下列三行 #将php作为Apache的一个模块来处理LoadModule php5_mod ...
- 构建自己的 Linux 发行版
如何用 SUSE Studio 构建 Linux 发行版? (1) 进入到 www.susestudio.com,设立一个帐户 (2) 为你的设备(发行版)选择一个基本模板 -软件和软件包选择 (1) ...
- Java多线程卖票例子
package com.test; public class SaleTickets implements Runnable { private int ticketCount = 10;// 总的票 ...
- Thinking in java学习笔记之LinkedList 与Stack
- Ruby升级的最新方法
今天安装cocoapods时候出现了下面的提示Error installing pods:active support requires Ruby version >= 2.2.0这个需求的意思 ...
- 我的.NET自学之路
我第一门语言接触的并不是.net,而是php刚学php感觉还好,但是一学到后面就有一点头晕乎乎的,我感觉没有一个好的编写php代码的编辑器.而且php是弱类型语言,感觉起来没有像c,java,c#这些 ...
- 【codevs2495】 水叮当的舞步
http://codevs.cn/problem/2495/ (题目链接) 题意 给出一个N*N的矩阵,其中元素有5种颜色,每次可以将左上角元素所在的连通块更换一种颜色,连通块指相邻并且颜色相同的元素 ...
- Jquery ajax运用执行顺序有误怎么解决
在这儿,可能就要提示一个ajax的一个属性async async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续执行ajax块后 ...
- <<< 网页中如何利用原生js和jquery储存cookie
javascript当中的cookie机制,使应用达到了真正的全局变量的要求,cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript.可以由Java ...
- WMPlayer
WMPlayer视频播放器,AVPlayer的封装,继承UIView,想怎么玩就怎么玩.支持播放mp4.m3u8.3gp.mov,网络和本地视频同时支持.全屏和小屏播放同时支持.自动感应旋转屏幕. 1 ...