我試圖找到解決數量一些解決非線性同餘方程
x^a (mod b) =c with 0<=x<=u
其中b < = 50,但A和U可以很大。我的方法是遍歷x從0到min(b,u)的每個值,並且如果它滿足公式add ceil((ux)/ b)(考慮到x的值的數量大於b但在b)的乘法域中等價於解的數目。我不確定我的算法的正確性。並且可以將我的方法延伸到一個以上的變量一樣,如果有
(x^a + y^a) (mod b)=c
我可生產無序對x和y這樣的使得x < = Y直到(X,Y)< =分鐘(二中,u),並再次計算I =小區((UX)/ b)和J =小區((UY)/ b)和乘加的總和爲:
t={i+i*(i-1)*2 if x=y , i*j*2 if x!=y }
並採取噸的總和。我想知道我的算法是否正確以及是否有其他更有效的算法。
是的,你的第一個算法是正確的,因爲下面的答案類似的問題表明:http://stackoverflow.com/a/18042254/509868 – anatolyg