gpt4 book ai didi

Java模块化划分

转载 作者:行者123 更新时间:2023-11-29 07:18:01 25 4
gpt4 key购买 nike

我正在做一些错误纠正,我需要在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com