[算法学习] 贝祖定理

 裴蜀定理: //设a,b是不全为0的整数,则存在整数x,y使得ax+by=gcd(a,b)

//扩展裴蜀定理: //a,b为不小于0的整数,n为整数,是否存在不小于0的x和y使得ax+by=n有解? //1、若n>ab-a-b,有解 //2、若n=0,有解(x=y=0) //3、若n<0,无解(a,b,x,y均不小于0,无法线性变换出负数) //4、若ax+by=n有解,则ax+by=ab-a-b-n无解

例题

1.最小正整数解 - 蓝桥云课 (lanqiao.cn)

//本题需要求解最小的ax+by=n,使得n>0 //设a和b的最大公约数为gcd(a,b),因为a,b,x,y均为整数,其线性组合同样是gcd(a,b)的倍数 //故ax+by=k*gcd(a,b) //令k=1,可得最小的ax+by=gcd(a,b) //故本题直接求解gcd(a,b)即可 //注意当ab异号时gcd(a,b)返回负数,需要取绝对值

你可能感兴趣的:(学习)