欧几里得定理(nyoj775)
A了一道题目,深入学习了一下欧几里得定理,记录一下:
我们平常了解的欧几里得定理就是求两个数最大公约数。
求最大公约数的定理是:设a,b是任意两个正整数,则gcd(a,b)=Rn,其中Rn是广义欧几里得除法中最后一个非零余数。算法描述
int gcd(int x,int y)
{int t=x%y;while(t){x=y;y=t;t=x%y;}return y;
}
但是当你遇上一个这样一个问题该怎样快速解决呢?
对于任意两个正整数a和b,必定存在一对整数s、t使得sa+tb=gcd(a,b)。
#include <cstdio>
#include <cmath>int s[1005],t[1005];
int main()
{int a,b;s[0]=1,s[1]=0;t[0]=0,t[1]=1;while(~scanf("%d%d",&a,&b)){if(a+b<0&&a==b)break;int x,k=2;while(b){s[k]=s[k-2]-a/b*s[k-1];t[k]=t[k-2]-a/b*t[k-1];//printf("%d %d\n",s[k],t[k]);x=a%b;a=b;b=x;k++;}printf("%d %d\n",s[k-2],t[k-2]);}return 0;
}
欧几里得定理(nyoj775)相关推荐
- 欧几里得定理与扩展欧几里得定理
欧几里的定理(辗转相除法): gcd(a,b) = gcd(b,a%b) gcd(a,b)表示a,b的最大公约数 证明: 设 a > b c = a%b a = k * b + c (k为某个整 ...
- 数学--数论--欧几里得定理和拓展欧几里得定理
欧几里得定理: gcd(a, b) = gcd(b, a%b) 证明: 我们首先约定:m = gcd(a,b) , n = gcd(b, q) , a = b*p +q.(这里的gcd含义跟上面一样, ...
- 数学基础知识(扩展欧几里得定理)
一.欧几里得定理(辗转相除法) 性质:如果 i 能整除a,也能整除b,则 i 能整除a+b,也能整除ax+by(x,y为整数),同时a mod b = a-(a/b)*b 用以上的性质我们知道如果一个 ...
- 扩展欧几里得定理求ax + by = c 的通解
扩展欧几里得定理求ax + by = c 的通解: 前置条件: ax + by = c , gcd(a, b) = d 计算: a d \frac{a}{d} dax + b d \frac{b}{ ...
- 欧几里得定理 java,每个程序员都应该知道的基础数论
原标题:每个程序员都应该知道的基础数论 这篇文章讨论了数论中每个程序员都应该知道的几个重要概念.本文的内容既不是对数论的入门介绍,也不是针对数论中任何特定算法的讨论,而只是做为数论的一篇参考. 0. ...
- 欧几里得定理 及 拓展欧几里得 小结
[欧几里得定理] 定义: gcd ( a , b ) = gcd ( b , a m o d b ) \gcd(a,b)=\gcd(b,a\mod b) gcd(a,b)=gcd(b,a ...
- 专题·扩展欧几里得定理【including 求解二元一次方程,线性同余方程
初见安~这里是基础数论专题(3)~[详见数论专栏] p.s:本文章假设你已经掌握了欧几里得算法--辗转相除法求最大公约数(gcd) 一.二元一次方程 形如的含有两个未知数且最高次数为1的方程我们称之为 ...
- 拓展欧几里得定理的应用
扩展欧几里得定理的运用 首先,先重复一下拓展欧几里得的内容: 对于不全为 0 的整数a.b,一定存在一组解 x,y,使得 ax + by == gcd(a,b) 先说一下这个定理的三个用处(但是小细节 ...
- 扩展欧几里得定理 新手向证明及代码
知识储备 1 . 朴素欧几里得原理:gcd(a,b) == gcd(b,a % b) 2 . 负数取模:忽略符号返回绝对值就好了 3 . 模数原理:对于整数a,b必然存在整数k使得a % b == a ...
最新文章
- 一个资深投行女销售和低调IT创业男的故事
- Qt下的OpenGL 编程(3)绘制平面几何体
- MSM--Memcached_Session_Manager介绍及使用
- 每日一博 - Java序列化一二事儿
- 北京计算机工业学校96届,刘驰_北京理工大学计算机学院
- icmp报文格式_TCP/IP(二):IP报文格式详解
- 1024 许个愿吧,万一实现了呢?
- laravel手动误删了迁移文件,重新生成
- 查看欧拉系统服务器ip,euler os 查看center进程命令
- 《花开在眼前》听得泪流满面
- 数字电子技术基础-2-逻辑函数的最小项与最大项
- ORA-12569: TNS: 包校验和失败解决方法一例
- ZF GE5060F47/153
- JDBC链接中的问题
- Clickhouse 时区
- 基于vue的适老化住宅设计系统的设计与实现
- Manjaro安装Mariadb
- 机器学习——python scikit-learn 贝叶斯
- 《离散时间信号处理学习笔记》—连续时间信号的采样(四)
- 【0】Docker---认识Docker