根据余数计算变量

时间:2014-01-09 18:50:06

标签: javascript math equation equation-solving

如何使用JavaScript计算此公式中的x值?

(x * y) % z = 1

yz是已知的整数。

例如,y = 7z = 20。 3将结果乘以7得到21,将除以20的结果除以1的余数。解x = 3

(3 * 7)%20 = 1

2 个答案:

答案 0 :(得分:1)

这是一个数学问题,而不是JavaScript问题。使用Extended Euclidean Algorithm。例如,要找到7模20的倒数,从这两个方程开始:

20 =  0•7 + 1•20.
 7 =  1•7 + 0•20.

接下来,将左边的两个数字(20/7)除以整数部分(2)。从上面的方程中算出底部方程的减法:

20 =  0•7 + 1•20.
 7 =  1•7 + 0•20.
 6 = -2•7 + 1•20.

重复:7/6的整数部分是1.从上面的方程式中减去底部方程的一倍。新的等式是:

 1 =  3•7 - 1•20.

现在你可以看到3次7是1模20次。(同时,-1次20是1模7)。

答案 1 :(得分:0)

嗯,有多个号码对x有效。在这种情况下,x也可能是23(23 * 7 = 161,161%20 = 1)。因此,您需要以不同的方式表达问题作为起点,例如“什么是可以解决方程的最低x?”

如果你正在解决这个问题,那么它突然出现了另一个问题。然后,您只需要解决两种可能性:(x * y) - z = 1(x * y) = 1。从那里你可以做一个小代数来解决x