N次剩余

$$求解x^n\equiv a(\%P),其中P是质数,0\leq x<P$$

设$g$是$P$的原根

那么$g^0,g^1,...,g^{P-2}$和$1,2,...,P-1$是一一对应的。

令$x=g^y$,$a=g^t$。

其中解$a=g^t$可以用离散对数,如果$P$不是很大的话,我们也可以用一个map存下$g^0,g^1,...,g^{P-2}$,然后在map中查找即可。

那么则有:

$$g^{y \times n} \equiv g^t (\%P)$$

因为$g^0,g^1,...,g^{P-2}$和$1,2,...,P-1$是一一对应的,所以原问题转化成:

$$n \times y  \equiv t (\%P-1)$$

很好,变成解线性方程。

 

posted @ 2015-09-15 21:34  maijing  阅读(452)  评论(0编辑  收藏  举报