Algorithm 计算逆模,其中模不是素数

Algorithm 计算逆模,其中模不是素数,algorithm,modulus,chinese-remainder-theorem,Algorithm,Modulus,Chinese Remainder Theorem,我想计算一下 对于给定的N、R和M值,F(N)=(F(N-1)*[(N-R+1)^(N-R+1))/(R^R)])mod M 这里A^B表示幂B,而不是任何按位操作 这里M不需要是素数。如何处理这个问题?请帮忙,因为如果M是素数,就不会那么难找到R^R mod M的倒数 但是M可以是1到10^9之间的任何值。我无法解决这个问题 N可以在1到10^5之间,R小于或等于N。假设您知道除法的结果是一个整数: 由于N和R很小,可以通过计算N-R+1和R的素因子分解来实现这一点 如果我们知道,R=p^a…

我想计算一下

对于给定的N、R和M值,F(N)=(F(N-1)*[(N-R+1)^(N-R+1))/(R^R)])mod M

这里A^B表示幂B,而不是任何按位操作

这里M不需要是素数。如何处理这个问题?请帮忙,因为如果M是素数,就不会那么难找到R^R mod M的倒数

但是M可以是1到10^9之间的任何值。我无法解决这个问题


N可以在1到10^5之间,R小于或等于N。

假设您知道除法的结果是一个整数:

由于N和R很小,可以通过计算N-R+1和R的素因子分解来实现这一点

如果我们知道,
R=p^a…q^b
那么
R^R=p^(Ra)…q^(Rb)

类似地,您可以计算
(N-R+1)^(N-R+1)
中每个素数的幂

(N-R+1)^(N-R+1)
中素数的幂减去
R^R
中素数的幂,得到结果中每个素数的幂


然后你可以使用一个标准的二进制求幂例程来计算模M的结果,而不需要求逆。

你确定R^R平均地除以你的分子吗?实际上它类似于F(N)=F(N-1)[((N-R+1)^(N-R+1))/(R^R)]mod M。虽然我明白你的意思,但如何保持F(N-1)项的这个?