如何使用JavaScript计算此公式中的x
值?
(x * y) % z = 1
y
和z
是已知的整数。
例如,y = 7
,z = 20
。 3将结果乘以7得到21,将除以20的结果除以1的余数。解x = 3
。
(3 * 7)%20 = 1
答案 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
。