原根简介

一个数m如果有原根,则其原根个数为phi(phi(m))。特别地,对素数有phi§=p-1。

假设g是奇素数p的一个原根,则g1,g2,...,g(p−1)g^1,g^2,...,g^{(p-1)}g1,g2,...,g(p1)在模p意义下两两不同,且结果恰好为1 p−11~p-11 p1,由此可以定义“离散对数”,与连续数学中的对数有异曲同工之妙。

离散对数又叫做“指标”,有指标法则:I(ab)≡I(a)+I(b)(modp−1);I(ak)≡k∗I(a)(modp−1)I(ab)≡I(a)+I(b) (mod p-1);I(a^k)≡k*I(a) (mod p-1)I(ab)I(a)+I(b)(modp1)I(ak)kI(a)(modp1),由此可以把乘法转化为加法。

又因为g1,g2,...,g(p−1)g^1,g^2,...,g^{(p-1)}g1,g2,...,g(p1)在模p意义下两两不同,于是判断方法:O(p)


inline bool pdg(int x,int p){
    int t = 1;CLR(vis,0);
    FOR(i,0,p-2){
        if(vis[t]) return false;
        vis[t] = true;
        t = qmul(t,x,p);
    }
    return true;
}
 
int g;
 
inline int getg(int p){
    FOR(i,2,p-1){
        if(pdg(i,p)) return i;
    }
}

对于指数方程:ax≡b(modpe)a^x \equiv b \pmod {p^e}axb(modpe)
令g为p^e原根,也就是p的原根
logga∗x≡loggb(modϕ(pe))log_ga*x \equiv log_gb \pmod{\phi(p^e)}loggaxloggb(modϕ(pe))

留坑待填。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值