时隔两三个月重新打$ntt$的时候,已经忘记了常见模数的原根。 想要回忆原根的求法,以备不时之需,然而也忘记了。 所以颓了大神$yxs$的证明博客,为了防止再次遗忘,来复读一遍大神的做法和证明。 做法: 因为原根往往很小,所以可以采用暴力枚举的方法。 然而直接暴力$check ...
原根的定义: 原根,是一个数学符号。设m是正整数,a是整数,若a模m的阶等于 m m的欧拉函数 ,则称a为模m的一个原根。 阶:a和模m互质,使ad mod m 成立的最小正整数d称为a对模m的阶。例如: mod , 对模 的阶为 。 假设一个数g对于P来说是原根,那么gi mod p的结果两两不同,且有 lt g lt P , lt i lt P.那么g可以称为是P的一个原根。 归根到底就是 ...
2020-03-06 23:17 0 738 推荐指数:
时隔两三个月重新打$ntt$的时候,已经忘记了常见模数的原根。 想要回忆原根的求法,以备不时之需,然而也忘记了。 所以颓了大神$yxs$的证明博客,为了防止再次遗忘,来复读一遍大神的做法和证明。 做法: 因为原根往往很小,所以可以采用暴力枚举的方法。 然而直接暴力$check ...
一个数m如果有原根,则其原根个数为phi(phi(m))。特别地,对素数有phi(p)=p-1。 假设g是奇素数p的一个原根,则g^1,g^2,...,g^(p-1)在模p意义下两两不同,且结果恰好为1~p-1,由此可以定义“离散对数”,与连续数学中的对数有异曲同工之妙。 离散对数又叫 ...
阶:设a,p是整数,a和p互素,那么:使 成立的最小正整数n叫做a模p的阶. 原根:设m是正整数,a是整数,若a mod m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m)表示m的欧拉函数) 假设一个数g是质数P的原根 ...
# 整数的阶 根据欧拉定理aφ(n)≡1(mod n)">aφ(n) ≡ 1 (mod n),其中a与n互质,aφ(n ...
主要参考这里: http://www.cnblogs.com/autsky-jadek/p/7496178.html https://blog.csdn.net/a27038/article/d ...
原根 为了简单起见,只考虑素数的情况。(并不是只有素数才有原根 定义:对于素数 $p$,如果存在一个正整数 $1<a<p$,使得 $a^1, a^2, ..., a^{p-1}$ 模 $p$ 的值取遍 $1,2,...,p-1$ 的所有整数,称 $a$ 是 $p$ 的一个原根 ...
使用NTT需要保证模数mod 为质数。 通过以下代码求得一个模数的原根 , 常见的质数的原根 998244353 -> 3 1e9+7 -> 5 #include<bits/stdc++.h> #define ll long long ...
幸运的原根如下: 有质数 \(p = k\cdot 2^r + 1\), 原根为 \(g\): 判断代码: \(p\) \(r\) \(k\) \(g\) 81788929 21 39 ...