Math 如果p是素数,如何在((r^n-1)/(r-1))%p=s中找到n?

Math 如果p是素数,如何在((r^n-1)/(r-1))%p=s中找到n?,math,primes,Math,Primes,我想把它简化成这样,但没有得出任何结论。 ((r^n-1)/(r-1))%p==((r^n-1)*(invmod(r-1,p)))%p 如果可能的话,n应该位于[1,p)之间,对于我所属的每一个r^i,[1,p)是不同的,并且包含了[1,p]中的所有数字 请帮忙!在这个回答中,我假设我们在谈论r^(n-1) x%p=s 表示存在任意整数m,以便 x=p*m+s 因为%是周期性的,并且将数字分成模类。这意味着 (r^(n-1))/(r-1)=p*m+s 其中m是一个任意整数。这意味着 r^(n-1

我想把它简化成这样,但没有得出任何结论。 ((r^n-1)/(r-1))%p==((r^n-1)*(invmod(r-1,p)))%p

如果可能的话,n应该位于[1,p)之间,对于我所属的每一个r^i,[1,p)是不同的,并且包含了[1,p]中的所有数字


请帮忙!

在这个回答中,我假设我们在谈论r^(n-1)

x%p=s

表示存在任意整数m,以便

x=p*m+s

因为%是周期性的,并且将数字分成模类。这意味着

(r^(n-1))/(r-1)=p*m+s

其中m是一个任意整数。这意味着

r^(n-1)=(p*m+s)*(r-1)

因为所有的数字都是正数,我们可以将其转化为对数公式:

ln(r^(n-1))=ln((p*m+s)*(r-1))

由于对数内的幂等于标量,我们可以做一些进一步的修改:

(n-1)*ln(r)=ln((p*m+s)*(r-1))

所以

n*ln(r)=ln((p*m+s)*(r-1))+ln(r)

所以

n*ln(r)=ln((p*m+s)*r*(r-1))

最后:

n=ln((p*m+s)*r*(r-1))/ln(r)

如果需要,我们可以进一步完善:

n=对数(r,(p*m+s)*r*(r-1))

所以

n=对数(r,r)+对数(r,(p*m+s)*(r-1))

那是

n=1+log(r,(p*m+s)*(r-1))


您需要分析问题空间,知道n、r和s在[1,p)和m是一个任意整数。所以,问题是:m的一组可能的整数值是什么,允许所有三个值都在期望的区间内,以及可能的值是什么。这是一个较长的分析,不在简短的So答案的范围内,但我想你应该可以从这里开始。如果不是,那么再问另一个她问你会被困在哪里,让我知道。

是(r^n)-1还是r^(n-1)?听起来好像它归结为一个没有有效解决方案的问题。你需要提供更多的上下文:这是一个你想要通解的数学问题吗?对于一些给定的r、p和s值,你需要手工解决吗?你需要写一个程序来解决这个问题吗?p能有多大?@tom,无需进一步说明这似乎是一个普遍的问题。我们所能做的最好的事情是将公式细化为一种易于理解的形式,以便使用一种分析方法,也就是说,确保左侧只有n,右侧尽可能可以理解和计算。在线竞赛还是同一位老师?在这个问题上有很多离散的日志问题所以在过去的几天里