【学习总结】数学-欧几里德定理

描述

欧几里德算法

别名:辗转相除法

用途:计算两个正整数a,b的最大公约数

欧几里德拓展算法

扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足等式:
ax+by=gcd(a,b)=d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。

代码

C++ 欧几里德

LL gcd (LL a, LL b) {
    return b ? gcd(b, a%b) : b;
}
C++ 拓展欧几里德

void exgcd (LL a, LL b, LL& d, LL& x, LL& y) {
    if (b) {
        d = a;
        x = 1;
        y = 0;
    } else {
        exgcd(b, a%b, d, y, x);
        y -= (a/b)*x;
    }
}

简单推导

对于ax+by=c,用拓展欧几里德算法求一对解,|x|+|y|最小的值。当c=k?gcd(a,b)有整数解,当c!=gcd(a,b)时无解。

  • g=gcd(a,b),设x0,y0为ax+by=g的一组解
  • 那么ax+by=c的一组解即为x0?c/g,y0?c/g
  • 若xi=x0?c/g为整数解,那么有c=k?g

通解

  • x=x0+k?b′(b′=b/gcd(a,b)
  • y=y0+k?a′(a′=a/gcd(a,b)

【学习总结】数学-欧几里德定理

时间: 2024-08-04 14:20:42

【学习总结】数学-欧几里德定理的相关文章

学习总结--数学.cayley定理

定义: 有n个标志节点的树的数目等于nn?2(仅是cayley在组合数学中的应用) 简单证明: 1.首先我们假设n为4,即有3个节点 2.这样的话我们就有k个子树,此时k=3 (图1) 3.选中其中一个节点C(1n),然后x 再选中不含该节点的一个子树C(1k?1),让这颗子树的根连接到该节点上,这样的话子树就减少了一棵 (图2) (图3) 等... 4.重复操作直到k=1,k从n变成1总共执行了n-1次,所以根据乘法原理,构造出的有确定根节点的树有ans=nn?1?(n?1)! 5.但是对于一

【学习总结】数学-lucas定理

定义: 数论Lucas定理是用来求 C(mn)%p的值, p是素数. 描述: lucas(n,m,p)=lucas(n/p,m/p,p)?C(m%pn%p) lucas(n,0,p)=1 证明: 设p为素数,A,B为正整数,并且有(即A,B的p进制情况): A=akpk+ak?1pk?1+-+a1p1+a0 B=bkpk+bk?1pk?1+-+b1p1+b0 因为C(jp)=C(j?1p?1)?pj=0 (含有因子p) 所以(1+x)t(modp)=(1+xt)(modp) (中间展开项均含有C

学习总结--数学.基本计数方法

学习总结--数学.基本计数方法 一.计数方法的原理 1.加法原理:做一件事情有n中办法,第i种办法有pi种执行方案,那么总的解决这件事情的方案数即为p1+p2+p3+...+pn. 2.乘法原理:做一件事情分为n个步骤,第i个步骤的执行方案有pi种,则一共有p1?p2?p3?...?pn种方案解决该问题. 3.容斥原理:一个班级有,集合A的人喜欢数学,集合B的人喜欢英语,结合C的人喜欢语文,那么该班级的人数应该是多少? 如果我们将三个集合的人数相加起来,那么就重复计算了既喜欢数学又喜欢英语的.既

pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 describe 针对Series或DataFrame列计算统计 min/max/sum 计算最小值 最大值 总和 argmin argmax 计算能够获取到最小值和最大值的索引位置(整数) idxmin idxmax 计算能够获取到最小值和最大值的索引值 quantile 计算样本的分位数(0到1)

数学自动定理证明的前景

7月2日下午,北京市小学开始放暑假,二楼的小孙孙不停地大喊大叫,对此,我心中很烦.但是,上楼一看,发现小孙孙正在网络上与同学玩连网游戏,...引起我对往事的回忆. 上世纪50年代,通用计算机刚刚问世(1954年),数学家就在计算机上动脑筋了,想搞"机器自动定理证明".起初,他们(数学家)拿罗素名著"数学原理"开刀(小试牛刀),在三条推理规则(模块生成.变量代换与公式置换)的前提下,让计算机自动证明了"数学原理"中前54个定理的38个,可谓&quo

需要学习的数学

1.Linear Algebra (线性代数) 和 Statistics (统计学) 是最重要和不可缺少的. 这代表了Machine Learning中最主流的两大类方法的基础.一种是以研究函数和变换为重点的代数方法,比如Dimension reduction,feature extraction,Kernel等,一种是以研究统计模型和样本分布为重点的统计方法,比如Graphical model, Information theoretical models等.它们侧重虽有不同,但是常常是共同使

深度学习相关数学资料

不过在保持学习姿势的时候,方向要正,不能以战术上勤奋掩盖战略上的懒惰,其中数学要学好,特别是对于人工智能/机器学习/深度学习来说,现在打下的数学基础或许会令你将来身价暴涨十倍! 深度学习作为机器学习与人工智能的子集,兴起稍晚,却使得机器学习能够实现众多的应用,并拓展了人工智能的领域范围. 对于深度学习来说,概率统计.微积分.线性代数等是基础课程,虽然算不上深奥,但是必须打好基础. 概率统计.概率统计是许多科学和工程的基础工具,可以告诉我们怎么推论. 微积分.深度学习中出现较多的一个概念就是梯度,

数据库 基础学习5— 数学函数

1.--数学函数 select degree ,sqrt(degree) from score --开平方,平方根 select price, ceiling(Price) from car -- 取大于当前小数的最小整数 select price, floor(Price) from car -- 取小于当前小数的最大整数 select price, round(Price,-1) from car -- 四舍五入,保留几位 select ABS(-2) -- 取绝对值 select RAND

Java基础学习笔记——数学函数、字符和字符串

4.2 常用数学函数 Math类中方法分为三类:三角函数.指数函数方法和服务方法.服务方法包括取整.求最小值.求最大值.求绝对值和随机方法.除了这些方法之外,Math类还提供了两个很有用的double型常量,PI(π)和E(自然对数的底数).可以在任意程序中用Math.PI和Math.E的形式使用这两个变量. 4.2.1 三角函数方法 sin(radians) 返回以弧度位单位的角度的三角正弦函数值 cos(radians) 返回以弧度为单位的角度的三角余弦函数值 tan(randians) 返