我的問題爲x =(16807 X k)的%65536個找到最小值,以滿足模數
即16807k≡X(MOD 65536)
我需要計算k值知道X。 到目前爲止,我的最大努力是蠻力。有沒有數學方法來計算k? 如果沒有任何優化我當前的代碼將不勝感激。
t = x;
while (t += 15115) // 16807k = 65536n + x - this is the n
{
if (t%16807 == 0)
return t/16807;
}
return x;
編輯:更改+ =到15115
X =(16807值X k)%65536和16807k =在x mod 65536的模逆是不等價的。 – Roecrew
除了@Roecrew評論:第一個方程有多個'k'作爲答案,第二個有'k'。 你需要找到所有'k'嗎? –
老兄對不起,但你沒有任何意義。你能告訴我們至少這個代碼的應用是什麼嗎? – Roecrew