有时候一个函数需要返回多个结果,而C++98并不提供对它的支持,这时候有两种办法:把要返回的结果设为全局变量,或者把多出的结果作为参数按引用传递(C#的out关键字就是这个作用)。 拿扩展欧几里德算法举例吧,输入a、b,求出x,y,g,使用a*x+b*y=g且g=gcd(a,b)。两种写法如下: 第
分类:
其他好文 时间:
2016-03-20 00:27:50
阅读次数:
247
为什么老是碰上 扩展欧几里德算法 ( ????? )最讨厌数论了 看来是时候学一学了 度娘百科说: 首先, ax+by = gcd(a, b) 这个公式肯定有解 (( ????? )她说根据数论中的相关定理可以证明,反正我信了) 所以 ax+by = gcd(a, b) * k 也肯定有解 (废话,
分类:
编程语言 时间:
2016-02-18 21:21:26
阅读次数:
219
gcd算法: 通过辗转相除求最大公约数 #include<stdio.h> int gcd(int a,int b){ return a%b==0?b:gcd(b,a%b); } int main(){ printf("%d",gcd(15,18)); return 0; } 扩展gcd算法: 对于
分类:
编程语言 时间:
2016-02-06 18:15:12
阅读次数:
193
为什么老是碰上 扩展欧几里德算法 ( ????? )最讨厌数论了 看来是时候学一学了 度娘百科说: 首先, ax+by = gcd(a, b) 这个公式肯定有解 (( ????? )她说根据数论中的相关定理可以证明,反正我信了) 所以 ax+by = gcd(a, b) * k 也肯定有解 (废话,
分类:
编程语言 时间:
2016-01-29 08:39:13
阅读次数:
147
扩展欧几里德算法:已知a, b求解一组x,y,使它们满足等式: ax+by =gcd(a, b) =d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。证明:ax+by=gcd(a,b);1. (1) a = 0,ax+by = gcd(a,b) = gcd(0,b)...
分类:
编程语言 时间:
2015-10-25 20:52:09
阅读次数:
260
扩展欧几里德算法:已知a, b求解一组x,y,使它们满足等式: ax+by =gcd(a, b) =d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。ax+by+c=0可以转化为ax+by=-c;可以用扩展欧几里德算法来求ax1+by1=gcd(a,b)来求出x1,...
分类:
其他好文 时间:
2015-10-25 19:16:40
阅读次数:
174
Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个...
分类:
编程语言 时间:
2015-10-17 13:27:43
阅读次数:
202
欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。第一种证明: a可以表示成a = kb + r,则r = a mod b 假设d是a...
分类:
编程语言 时间:
2015-09-22 21:51:03
阅读次数:
307
一,题意: 有两个类型的砝码,质量分别为a,b;现在要求称出质量为d的物品, 要用多少a砝码(x)和多少b砝码(y),使得(x+y)最小。(注意:砝码位置有左右之分)。 二,思路: 1,砝码有左右位置之分,应对比两种情况 i,a左b右,得出方程 ax1 - by1 = d ; ...
分类:
编程语言 时间:
2015-09-22 20:34:27
阅读次数:
187
本题和poj1061青蛙问题同属一类,都运用到扩展欧几里德算法,可以参考poj1061,解题思路步骤基本都一样。一,题意: 对于for(i=A ; i!=B ;i+=C)循环语句,问在k位存储系统中循环几次才会结束。 比如:当k=4时,存储的数 i 在0-15之间循环。(本题默认为无符...
分类:
编程语言 时间:
2015-09-22 14:26:17
阅读次数:
191