我想把它减少到这个,但无法得出任何结论。 ((r ^ n-1)/(r-1))%p ==((r ^ n-1)*(invmod(r-1,p)))%p。
如果可能的话,n也应该位于[1,p)之间,并且对于我所属的每个r ^ i [1,p]是不同的并且包含来自[1,p)的所有数字
请帮忙!
答案 0 :(得分:1)
我将在这个答案中假设我们正在谈论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 = log(r,(p * m + s)* r *(r - 1))
所以
n = log(r,r)+ log(r,(p * m + s)*(r - 1))
是
n = 1 + log(r,(p * m + s)*(r-1))
你需要分析问题空间,知道n,r和s在[1,p)的区间内,m是一个任意整数。因此,问题是:m的可能整数值的集合是什么,它将允许所有三个值都在所需的时间间隔内,以及可能的值是什么。这是一个较长的分析,超出了简短的答案的范围,但我认为你应该从这里开始。如果没有,那么问另一个问题,你将被困在哪里,让我知道它。