数论 基础

中国剩余定理:

例如,要找出一个数,除3余1,除5余4,除7余3,求这个数最小是多少。

1. 求35*n%3=1,则n最小为2,35*min=70;求15*n%7=1,15*min=15;求21*n%5=1,21*min=21。
2. 根据定理  如果a%x=b,则(a*k)%x=b*k,得70*1 + 15*3 + 21*4等于199。
3. 得3,5,7的最小公倍数为105,用199除以105,得到余数94,即符合条件的最小数。

欧几里得:

1. 设a=kb+r,则一定存在k使a-kb=a mod b,则r=a mod b。
2. 设d为a,b的公约数,则d|a(d可以整除a)d|b且d|(kb+r),则d|r。
3. 所以d为a,b的公约数,也是b,r的公约数,则最大公约数也相等。
4. 所以gcd(a,b) = gcd(b,r) = gcd(b,a mod b)。
如果a mod b为0,则gcd(a,b)等于b。
int gcd(int a, int b) {
  while (b != 0) {
    rem = a % b;
    a = b;
    b = rem;
  }
  return a;
}

扩展欧几里得:

求方程 ax+by=n的所有x,y的解。
1. 设d=gcd(a,b)=gcd(b,a mod b),则一定存在x1,y1使得ax1+by1=d,bx2+(a%b)y2=d --> bx2+(a-(a/b)*b)y2=d --> bx2+ay2-(a/b)*by2=d
2. 则x1=y2,y1=x2-(a/b)y2

恒等定理:    齐次的项的系数相等

Lucas定理:组合数求摸


取余预算:

(a + b) % p = (a % p + b % p) % p (1)
(a - b) % p = (a % p - b % p) % p (2)
(a * b) % p = (a % p * b % p) % p (3)
a ^ b % p = ((a % p)^b) % p (4)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值