逆元

常用的求逆元的方法有扩展欧几里得和费马小定理, 因为扩展欧几里得我还不会, 这里介绍一下费马小定理。

逆元的定义

有正整数 a a a和质数 p p p,满足 a x % p = 1 ax\%p=1 ax%p=1的最小正整数 x x x就称为是 a a a的逆元

逆元的作用

为什么要用到逆元呢?
在加、减、乘法中,都有如下等式:
( 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 (a-b)\%p=(a\%p-b\%p)\%p (ab)%p=(a%pb%p)%p
( a × b ) % p = ( a % p × b % p ) % p (a\times b)\%p=(a\%p\times b\%p)\%p (a×b)%p=(a%p×b%p)%p
除法例外,但是有了逆元之后,就有以下等式
a b % p = ( a × x ) % p \frac{a}{b}\%p=(a\times x)\%p ba%p=(a×x)%p

其中 x x x 就称为 b b b p p p的逆元

费马小定理

费马小定理 百度百科

可以简单的理解成:如果 p p p是一个质数,而整数 a a a不是 p p p的倍数,则有 a p − 1 % p = 1 a ^ {p-1}\%p=1 ap1%p=1

显然, p p p为质数时,有 ( a × a p − 2 ) % p = 1 (a\times a ^ {p-2})\%p=1 (a×ap2)%p=1,那么 a p − 2 a^{p-2} ap2就是a的逆元。

这里我们可以用快速幂求得 a a a的逆元 x x x
代码如下:

ll quick_pow(ll a, ll b)
{
    ll res = 1;
    while (b)
    {
        if (b & 1)
            res *= a;
        b /= 2;
        a = a * a % mod;
        res %= mod;
    }
    return res % mod;
}
inline ll get_niyuan(ll a)
{
    return quick_pow(a, mod - 2);
}
内容概要:文章详细介绍了ETL工程师这一职业,解释了ETL(Extract-Transform-Load)的概念及其在数据处理中的重要性。ETL工程师负责将分散、不统一的数据整合为有价值的信息,支持企业的决策分析。日常工作包括数据整合、存储管理、挖掘设计支持和多维分析展现。文中强调了ETL工程师所需的核心技能,如数据库知识、ETL工具使用、编程能力、业务理解能力和问题解决能力。此外,还盘点了常见的ETL工具,包括开源工具如Kettle、XXL-JOB、Oozie、Azkaban和海豚调度,以及企业级工具如TASKCTL和Moia Comtrol。最后,文章探讨了ETL工程师的职业发展路径,从初级到高级的技术晋升,以及向大数据工程师或数据产品经理的横向发展,并提供了学习资源和求职技巧。 适合人群:对数据处理感兴趣,尤其是希望从事数据工程领域的人士,如数据分析师、数据科学家、软件工程师等。 使用场景及目标:①了解ETL工程师的职责和技能要求;②选择适合自己的ETL工具;③规划ETL工程师的职业发展路径;④获取相关的学习资源和求职建议。 其他说明:随着大数据技术的发展和企业数字化转型的加速,ETL工程师的需求不断增加,尤其是在金融、零售、制造、人工智能、物联网和区块链等领域。数据隐私保护法规的完善也使得ETL工程师在数据安全和合规处理方面的作用更加重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hesorchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值