我正在寻找实现简单的方程式:
i,j = -Q ± √(Q 2 -4PR) / 2P
为此,我有以下代码(注意:P = 10. Q = 7. R = 10):
//Q*Q – 4PR = -351 mod 11 = -10 mod 11 = 1, √1 = 1
double test = Math.sqrt(modulo(((Q*Q) - ((4*P)*R))));
// Works, but why *-10 needed?
i = (int)(((-Q+test)/(P*2))*-10); // i = 3
j = (int)(((-Q-test)/(P*2))*-10); // j = 4
简而言之,test 取方程的第一部分并将其修改为介于 0 和 11 之间的非零整数,然后写入 i 和 j。i 和 j 返回正确的数字,但由于某种原因,需要 *-10 才能使它们正确(我猜想得到正确值的数字)。
如果可能的话,我想找到一种更好的方法来执行上述等式,因为我的做法似乎是错误的,并且可以正常工作。我想按照方程式所暗示的那样去做,而不是破解它来工作。