不定方程扩展欧几里得

Java小王子
• 阅读 1780

扩展欧几里得定理
扩展欧几里得定理(Extended Euclidean algorithm, EXGCD),常用于求ax+by=gcd(a,b) 的一组可行解。

不定方程扩展欧几里得

将 不断代入递归求解直至 (最大公约数,下同)为 0 递归 x=1,y=0 回去求解。

public static int f(int a,int b,int[] xy){
        if(b == 0){
            xy[0] = 1;
            xy[1] = 0;
            return a;
        }
        int gcd = f(b,a%b,xy);
        int t = xy[0];  //t = x2;
        xy[0] = xy[1];  //x1 = y2;
        xy[1] = t - a/b*xy[1];  //y1 = x2 - a/b*y2
        return gcd;
    }

这里要传一个数组,因为,最后要获取被改变的x,y的值。c语言用指针也可以,传地址。

函数参数的传递的是值,swap(int a,int b)中,a和b都只是得到了实参的值而已,然后就跟实参没有任何关系了。

如果用swap(int a,int b),依然是得到实参的值,但由于a,b是指针,得到的将是地址,那么参数和实参所指的地址是一样的,如果在函数体里交换地址所指的存储内的东西,那么就是真的交换了。

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
4年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Karen110 Karen110
4年前
人工智能数学基础8:两个重要极限及夹逼定理
一、极限公式1二、极限公式2e为常数2.71828…变体:使用案例:三、夹逼定理夹逼定理英文原名SqueezeTheorem,也称两边夹定理、夹逼准则、夹挤定理、挟挤定理、三明治定理,是判定极限存在的两个准则之一。是法国著名数学家、物理学家约瑟夫·路易斯·拉格朗日(JosephLouisLagrange,17361813)提出的。3.1、数
Wesley13 Wesley13
4年前
MySQL 的慢 SQL 怎么优化?
!(https://oscimg.oschina.net/oscnet/7b00ec583b5e42cc80e8c56c6556c082.jpg)Java技术栈www.javastack.cn关注阅读更多优质文章(https://www.oschina.net/action/GoToLink?urlhttp
Wesley13 Wesley13
4年前
ES6学习笔记(3)
参考书《ECMAScript6入门》http://es6.ruanyifeng.com/字符串的扩展ES6之前只能识别\\u0000\\uFFFF之间的字符,超过此范围,识别会出错;ES6弥补了这个错误ES6扩展的新方法codePointAt"𠮷".CodePointAt(0)//返回超过\\u00
可莉 可莉
4年前
2021年全球公有云终端用户支出将增长18% ;EMNLP 2020最佳论文:无声语音的数字发声
!(https://static001.geekbang.org/infoq/af/af9f6637b50b09be60b00a42f3812d5e.png)开发者社区技术周刊又和大家见面
Stella981 Stella981
4年前
2021年全球公有云终端用户支出将增长18% ;EMNLP 2020最佳论文:无声语音的数字发声
!(https://static001.geekbang.org/infoq/af/af9f6637b50b09be60b00a42f3812d5e.png)开发者社区技术周刊又和大家见面
Stella981 Stella981
4年前
OpenJDK11与Spring Cloud Finchley的不兼容问题与解决
本文的环境:OpenJDK11.0.4,SpringCloudfinchleySR4,SpringBoot2.0.3最近遇到了一个问题,在feign调用的时候,时常会出现这样一个奇怪的错误:2019100708:00:00.620ERRORxxx,e1ba4c7540954aa3,871b99c4576d42e3
Wesley13 Wesley13
4年前
ES6之扩展运算符 三个点(...)
对象的扩展运算符理解对象的扩展运算符其实很简单,只要记住一句话就可以:对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中letbar{a:1,b:2};letbaz{...bar};//{a:1,b:2}上述方法实际上等价于:le
Stella981 Stella981
4年前
AI 科学家带你快速 Get 人工智能最热技术
!(https://pic3.zhimg.com/80/v2af9f6637b50b09be60b00a42f3812d5e_1440w.jpg)日前,京东智联云与贪心学院联合举办的人工智能前沿技
基于空域时空图卷积的步态情绪识别方法
步态轨迹是一帧帧图结构数据,图结构就是由点和边组成的非欧几里得数据。图结构数据与欧几里得数据,还是存在很大的差距,所以不能直接将卷积操作应用于图结构数据上,从而产生了专门处理图结构数据的图卷积操作。图卷积分为两种:基于空域和基于频域。本文介绍的是基于基于空域图卷积的步态情绪识别方法。