2024五一 day1 笔记

快速幂

        本质上是递归的思想。

        例: 2^8 = (2^4) ^ 2 = ((2 ^ 2) ^ 2) ^ 2

        代码:

int ksm(int a, int b){
    if(b == 0) return 1;
    int c = ksm(a, b / 2);
    c = 1ll * c * c;
    if(b % 2 == 1) c = 1ll * c * a;
    return c;
}

---------------------------------------------------------------------------------------------------------------------------------

Gcd,Lcm

        gcd,最大公约数。

                gcd(a, b) a和b的最大公约数

                gcd(a, b) = gcd(b, a % b)

                代码:

int gcd(int a, int b){
    if(b == 0) return a;
    return gcd(b, a % b);
}

        lcm,最小公倍数。

                lcm(a, b) a和b的最小公倍数

                lcm(a, b) = a * b / gcd(a, b)

---------------------------------------------------------------------------------------------------------------------------------

ExGcd

        给定a, b,使g = gcd(a, b), 求x, y,使xa + yb = g

        代码:

int exgcd(int a,int b,int &x,int &y)
//要求gcd(a,b)
//还要求 x * a + y * b = gcd(a,b)
//函数的返回值为gcd(a,b)
//而x,y的值 通过 取地址 返回
{
	if (b==0)
	{
		x=1;y=0;
		return a;
	}
	int g,xp,yp;
	g=exgcd(b,a%b,xp,yp);
	//一定有 xp * b + yp * (a%b) = g
	x=yp;
	y=xp-a/b*yp;
	return g; 
} 

---------------------------------------------------------------------------------------------------------------------------------

逆元

        如果一个方程ax % b = 1,那么x为a % b的逆元

        作用:

        (a + b) % p = (a%p + b%p) %p (对)

        (a - b) % p = (a%p - b%p) %p (对)

        (a * b) % p = (a%p * b%p) %p (对)

        (a / b) % p = (a%p / b%p) %p (错)

        为什么除法错的

        证明是对的难,证明错的只要举一个反例

        (100/50)%20 = 2 ≠ (100%20) / (50%20) %20 = 0

        对于一些题目,我们必须在中间过程中进行求余,否则数字太大,电脑存不下,那如果这个

        算式中出现除法,我们是不是对这个算式就无法计算了呢?

        答案当然是 NO

        这时就需要逆元了

        总结起来就是

        设c是b的逆元,则有b*c≡1(mod m);
        推论:(a/b)mod m = (a/b)1mod m = (a/b)bc mod
        m=a
c(mod m); 即a/b的模等于a * (b的逆元)的模;
        这个推论也就说明了为什么要引入逆元;

        逆元的作用
        一句话就是,将除法改为乘法;

---------------------------------------------------------------------------------------------------------------------------------

费马小定理

        若p为素数,gcd(a, p) = 1,则a^(p - 1) % p = 1.

        另一形式:a ^ p % p = 1

---------------------------------------------------------------------------------------------------------------------------------

欧拉定理

        欧拉函数

                欧拉函数,即φ(n),表示的是小于等于n的和n互质的书的个数。

        定义

                若gcd(a, m) = 1,则a ^ φ(n) % m = 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值