Java模块化逆

时间:2011-10-23 22:19:08

标签: java modulo inverse

我在Java中做了一些错误纠正,并且简短地说了很长一段时间;

在mod 11下:

-4 mod 11 = 7

我已经通过使用谷歌的计算器和几个在线模数计算器证实了这一点,但我不能为我的生活找到如何用Java实现它。

我在想我需要使用一个倒数表来找到正确的数字,但我似乎要围成一圈。

任何意见都会受到赞赏。

提前感谢

5 个答案:

答案 0 :(得分:6)

以下内容将为任何整数n mod 11计算n

(n % 11 + 11) % 11

n % 11的结果位于-10 ... 10范围内。如果后者为负数,则后续添加和第二个模运算会将11添加到n % 11

此公式适用于任何基础:只需将11替换为另一个正整数。

答案 1 :(得分:3)

只需编写一个可以满足您需要的mod函数就可以了。示例here

private int mod(int x, int y)
{
    int result = x % y;
    if (result < 0)
    {
        result += y;
    }
    return result;
}

它比使用% 11 + 11) % 11更清晰,当您查看它时,操作立即有意义。 mod(32, 11)更明确32 mod 11而不是(32 % 11 + 11) % 11,并且可以节省额外的%操作。

答案 2 :(得分:1)

答案 3 :(得分:0)

我认为如果你采用正模(4 mod 11)并从后一个值中减去它,它应该每次都给你正确的答案。 (即11 - (4 mod 11)= 7)我还没有真正经历过测试,但似乎有道理。

答案 4 :(得分:0)

尝试使用BigInteger#mod

相关问题