求解ax+by=c的通解以及x的最小非负整数解
2018-02-28 17:31
447 查看
#include<iostream> using namespace std; long long x0, y0; long long ex_gcd(long long a, long long b, long long& x0, long long& y0) { long long m; if (b == 0) { x0 = 1; y0 = 0; return a; } else { m = ex_gcd(b, a%b, x0, y0); long long t = x0; x0 = y0; y0 = t - a / b*y0;//gcd(a,b)=gcd(b,a%b),对应系数相等 } return m; } //g=c/gcd(a,b) //上述方法求得的是ax+by=c/g,并不是通解 //通解为x=g*x0+mt,y=g*y0-nt //其中m=b/g,n为a/g //由于x=g*x0+mt,t可以任意取值,如果取整数的话,该式等价于x%m=g*x0; //最小非负整数解就是(g*x0+m)%m;
相关文章推荐
- 小菜第一篇。ax+by=c求解
- 数论系列 求证:设自然数a,b互质,则不能表示成ax+by(x,y为非负整数)的最大整数是ab-a-b
- VC中实现最小二乘法 直线拟合 Y=a0+a1X 以及 Y=aX
- MIT18.06线性代数课程笔记8:求解Ax=b、矩阵的秩以及矩阵的逆
- 求解gcd(a,b)=ax+by (扩展欧几里得算法)
- 【数论】扩展欧几里得 Ax+By=m 最小的X
- POJ 2142 The Balance ★ (不定方程 ax+by=c 的|x|+|y|最小解)
- 邝斌的ACM模板(扩展欧几里得算法(求 ax+by=gcd 的解以及逆元素))
- 扩欧 非常精妙 ax+by=d, 并令abc(a)+abs(b)最小
- POJ 2142 The Balance ★ (不定方程 ax+by=c 的|x|+|y|最小解)
- Ray Tracing(扩展欧几里得,ax+by=c最小解)
- 最小二乘法的证明以及最优化系数的求解 Least squares
- 扩展欧几里德求解ax + by = c 的 最小正整数解 ( x, y)
- 用C随机产生的正整数存到数组中,并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。
- hive中order by,sort by, distribute by, cluster by作用以及用法
- 求解最小生成树
- Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案
- opencv2感兴趣区域以及图像尺寸求解
- 扩展欧几里德算法解线性方程ax+by=c
- 给定一颗二叉树,以及其中的两个node(地址均非空),要求给出这两个node的一个公共父节点,使得这个父节点与两个节点的路径之和最小。