【发布时间】:2011-10-22 16:11:02
【问题描述】:
我正在做一些错误纠正,我需要在 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 在技术上无法执行模块化操作,我的一部分人认为我要么需要以某种方式计算逆,要么使用数组来存储可能的输出值。
【问题讨论】:
-
Err,2 / 10 是 0。而 0 % 11 是 0。为什么会是 9?
-
因为我是在mod 11下做的。不是正常除法。
-
我刚刚做的是:(2 * 10) % 11 = 9。这似乎给了我正确的答案。
-
啊,当然。但是乘法和除法并不完全相同。您找到了适合您解决方案的正确问题。
-
@stivlo:问题是关于在modular arithmetic 中反转乘法。因为 10 是它自己的反模 11,所以乘以 10 除以 10 在模 11 算术中具有相同的效果。这就是为什么托尼碰巧在上面几厘米的地方得到了正确的答案。
标签: java division modular-arithmetic