Java 模逆

发布于 2024-12-11 15:34:43 字数 239 浏览 1 评论 0原文

我正在用 Java 进行一些错误纠正,长话短说;

在 mod 11 下:

-4 mod 11 = 7

我已经通过使用 Google 计算器和几个在线模计算器确认了这一点,但我一生都无法弄清楚如何在 Java 中做到这一点。

我想我需要使用逆表来找到正确的数字,但我似乎在兜圈子。

任何意见将不胜感激。

提前感谢

托尼

I'm doing some error correction in Java and to cut a long story short;

Under mod 11:

-4 mod 11 = 7

This I've confirmed by using Google's calculator and a couple of online modulo calculators, but I cannot for the life of me figure out how to do it in Java.

I'm thinking that I need to use an inverse table to find the correct number but I seem to be going round in circles.

Any input would be appreciated.

Thank in advance

Tony

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

熟人话多 2024-12-18 15:34:43

以下代码将计算任何整数 nn mod 11

(n % 11 + 11) % 11

n % 11 的结果在 -10 范围内代码>...<代码>10。随后的加法和第二个模运算将 11n % 11 相加(当且仅当后者为负)。

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

The following will compute n mod 11 for any integer n:

(n % 11 + 11) % 11

The result of n % 11 is in the range -10...10. The subsequent addition and the second modulo operation add 11 to n % 11 iff the latter is negative.

This formula works for any base: just replace 11 with another positive integer.

小ぇ时光︴ 2024-12-18 15:34:43

只需编写一个满足您要求的 mod 函数就非常简单了。示例此处

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 % 11 + 11) % 11 更清楚 32 mod 11,并且节省了额外的 < code>% 操作。

It'd be pretty simple to just write a mod function which does what you require. Example here:

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

It's much clearer than using % 11 + 11) % 11, and the operation makes sense immediately when you look at it. mod(32, 11) is more clearly 32 mod 11 than (32 % 11 + 11) % 11, and it saves an extra % operation.

橘和柠 2024-12-18 15:34:43

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

I think if you take the positive modulo (4 mod 11) and subtract from the latter value it should give you the right answer every time. (i.e. 11 - (4 mod 11) = 7) I haven't really gone through and tested it but it seems to make sense.

橪书 2024-12-18 15:34:43

我有一个方法可以计算 a 的模式逆。 TC O(logm) SC O(logm)。我们使用欧几里得算法:“如果 GCD(a,m) == 1,a 和 m 是互质的”。请使用下面的链接。

Stackoverflow 帖子

I have a method that can calculate the mode inverse of a. TC O(logm) SC O(logm). We are using the Euclid algorithm: “a and m are co-primes if GCD(a,m) == 1”. Please use the link below.

Stackoverflow post

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文