【问题标题】:number of solution to nonlinear congruence equation非线性同余方程的解数
【发布时间】:2013-08-04 18:08:02
【问题描述】:

我正在尝试找到解决方案的数量

       x^a (mod b) =c with 0<=x<=u

其中 b

    (x^a + y^a) (mod b)=c

我可以生成所有无序的 x 和 y 对,使得 x

            t={i+i*(i-1)*2 if x=y , i*j*2 if x!=y }

对 t 求和。我想知道我的算法是否正确,是否还有其他更有效的算法。

【问题讨论】:

标签: algorithm math discrete-mathematics number-theory modular-arithmetic


【解决方案1】:

是的,如果 x^a mod b = c 则 (x+b)^a mod b = c。所以到目前为止总共会有 1 + floor((u-x)/b) 个解决方案。您只需要记住在搜索从 (x+1) 到 min(u,b) 的其他解决方案时跳过这些数字。

该概念适用于 2 个变量,但计算量更大。您求解 x^a mod b = d 并将计数保存为 T[d],其中 0 ≤ d

那么解决方案的总数与您建议的相似,只是我不打扰单独处理 x=y 和 x≠y:

for (i=0 ; i < b ; i++)
   count += T[i]*T[(b +c -i)%b];

【讨论】:

  • 我需要处理 x=y 和 x!=y 的原因是,虽然组合 (a,a) 为我们提供了一种解决方案,但 (a,b) 为我们提供了两种解决方案,但使用您的逻辑我如何推断用于产生余数 i 和 c-i 的 x 和 y 是否不同或相同
  • 好的,我现在明白我在计算排列时犯了一些错误。非常感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
相关资源
最近更新 更多