乘法逆元:修订间差异

来自三三百科
跳转到导航 跳转到搜索
33DAI留言 | 贡献
无编辑摘要
33DAI留言 | 贡献
批量导入三三文档
标签新重定向
 
(未显示同一用户的5个中间版本)
第1行: 第1行:
==前置==
#REDIRECT [[06-数学相关/04-乘法逆元]]
 
[[Category:三三文档]]
===快速幂===
 
====递归版====
 
<syntaxhighlight lang="cpp" line>
// a 的 b 次方在模 p 意义下的结果
int quick_pow(int a, int b, int p)
{
    if (b == 0)
        return 1;
    int x = quick_pow(a, b / 2, p);
    if (b % 2 == 0)
        return x * x % p;
    return x * x % p * a % p;
}
</syntaxhighlight>
 
====非递归版====
 
<syntaxhighlight lang="cpp" line>
// a 的 b 次方在模 p 意义下的结果
int quick_pow(int a, int b, int p)
{
    int res = 1;
    while (b > 0)
    {
        if (b % 2 == 1)
            res = res * a % p;
        b /= 2;
        a = a * a % p;
    }
    return res;
}
</syntaxhighlight>
 
==费马小定理求逆元==
 
<syntaxhighlight lang="cpp" line>
// a 在模 p(质数) 意义下的逆元
int inv(int a, int p)
{
    return quick_pow(a, p - 2, p);
}
</syntaxhighlight>
[[分类:代码模板]]

2026年5月20日 (三) 18:24的最新版本