取模意义下的对数&生成元的查找

Posted heanda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取模意义下的对数&生成元的查找相关的知识,希望对你有一定的参考价值。

取模意义下的对数&生成元(原根)的查找

取模意义下的对数

取模意义下的对数一般用在转化ntt式内的乘法成加法
贯穿这一块的一句话同时也是最难理解的一句话:素数p的乘法群同构与p-1的加法群
例如:
(Z*_{13}) 1 2 4 8 3 6 12 11 9 5 10 7 (素数13的乘法群)
(Z+_{12}) 0 1 2 3 4 5 6 7 8 9 10 11 (素数13-1的加法群)
可以发现(Z*_{13})中两个数做乘法的结果对应(Z+_{12})中两个数做加法的结果
乘法同构与加法容易想到对数运算
可以发现我们要得到一个素数的乘法群需要知道它的原根,原根不知道的同学可以补习一下,内容不多。
如果知道了原根应该就能理解取模意义下的对数怎么弄了
例子中是用2作为生成元也就是13的原根,生成了这个数列,既然和(Z+_{12})同构,就可以表示对数了
举个例子,13的乘法群中3是由2的4次方模上13得到的,同构出来则是
在模13意义下:(log_{2}3 = 4 mod 12)
这样子我们就可以对取模意义下的对数进行运算了
但是,底数不是生成元,也就是不是原根的时候是没法进行对数运算的,因为没法构造出1到p-1所有的数
同理,所以换底公式需要分母的对数和底数都是生成元。

生成元(原根)的查找

一般题目里面给的模数如果需要你求原根的话原根都会非常小,我们直接暴力求即可
代码:

以上是关于取模意义下的对数&生成元的查找的主要内容,如果未能解决你的问题,请参考以下文章

几种求逆元的方法

求乘法逆元的几种姿势

除法求模中求逆元的两种方法

loj Snakes 的 Naïve Graph 数论

模意义下的除法变乘法

线性求逆元的算法