Java模块化划分

标签 java division modular-arithmetic

我正在做一些错误纠正,我需要在 Java 的 mod 11 下除以两位数。

现在我通过使用模块化计算器知道了这一点:

9/1 mod 11 = 9
2/10 mod 11 = 9

问题在于让 Java 计算这个。在 Java 中:

(9 / 1) % 11 = 9 - This is fine
(2 / 10) % 11 = 0 - This is not correct.

我知道 Java 无法在技术上执行模块化操作,我的一部分在想我要么需要以某种方式计算逆,要么使用数组来存储可能的输出值。

最佳答案

我认为您正在寻找的是如何找到一个数模 11 的乘法逆元。

10 是它自己的反模 11,所以它不是一个特别有用的例子。相反,让我们求 7 模 11 的乘法逆元。

为此,我们针对整数 a 和 b 求解方程 7a + 11b = 1。我们使用 Euclidean algorithm为 a 和 b 找到合适的值。在这种情况下,我们可以取 a = -3 和 b = 2。我们忽略 b 的值,取 a ( = -3) 为 7 模 11 的倒数。在模 11 算术中,7 乘以 -3是 1。

如果我们不喜欢负数,我们可以取 7 模 11 的倒数为 8 ( = -3 + 11)。

因此,我们不是除以 7 模 11,而是乘以 -3,即乘以 8。例如,在模 11 算术中,9/7 = 9 * 8 = 72 = 6。

如果您只有一个模数可以使用(例如,您只能对 11 取模),最好事先计算一个模数 11 的乘法逆元表,然后在计算中使用它。

关于Java模块化划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860795/

相关文章:

java - 如何使用 JSTL 交替表格行背景颜色?

algorithm - ARM整数除法算法

algorithm - 具有 32/16 位除法的处理器上的 64/32 位除法

gmp - Mathematica PowerMod inverse 和 C 语言中的 mpz_powm

java - 以 json 格式返回 URL,而不是 ArrayList

java - 调用方法时参数数量错误

java - 抛出 ArrayIndexOutOfBounds 时未捕获?

python - 导入 __future__ 除法仅在未从另一个文件导入时才起作用

python - 有没有办法将打印品限制为仅真正的同余?

c++ - 模块化算法和 NTT(有限域 DFT)优化