Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java模块划分_Java_Division_Modular Arithmetic - Fatal编程技术网

Java模块划分

Java模块划分,java,division,modular-arithmetic,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在技术上无法执行模块化操作,我的一部分人认为我要么需要以某种方式计算逆运算,要么使用数组存储可能的输出值。不确定这是否是您想

我正在做一些纠错,我需要在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在技术上无法执行模块化操作,我的一部分人认为我要么需要以某种方式计算逆运算,要么使用数组存储可能的输出值。

不确定这是否是您想要的,但是

public static int divmod(int dividend, int divisor, int mod) {
    if (dividend >= divisor)
        return (dividend / divisor) % mod;
    return mod - dividend;
}
测试它:

divmod(9, 1, 11)  // returns 9
divmod(2, 10, 11) // returns 9

不确定这是否是你想要的,但是

public static int divmod(int dividend, int divisor, int mod) {
    if (dividend >= divisor)
        return (dividend / divisor) % mod;
    return mod - dividend;
}
测试它:

divmod(9, 1, 11)  // returns 9
divmod(2, 10, 11) // returns 9

我想你要找的是如何求一个模11的数的乘法逆

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

为此,我们求解a和b的方程式7a+11b=1(整数)。我们使用该函数为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的乘法逆表,然后在计算中使用它。

我想你要找的是如何找到一个模11的数的乘法逆

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

为此,我们求解a和b的方程式7a+11b=1(整数)。我们使用该函数为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的乘法逆表,然后在计算中使用它。

Err,2/10是0。0%11等于0。为什么会是9号?因为我是在11号模式下做的。不是普通除法。我刚才做的是:2*10%11=9。这似乎给了我正确的答案。啊,当然。但乘法和除法并不完全是一回事。您找到了解决方案的正确问题。@stivlo:问题是关于在中反转乘法。因为10是它自己的逆模11,所以在模11算法中乘以10和除以10具有相同的效果。这就是为什么Tony在上面的几条评论中碰巧得到了正确的答案。呃,2/10是0。0%11等于0。为什么会是9号?因为我是在11号模式下做的。不是普通除法。我刚才做的是:2*10%11=9。这似乎给了我正确的答案。啊,当然。但乘法和除法并不完全是一回事。您找到了解决方案的正确问题。@stivlo:问题是关于在中反转乘法。因为10是它自己的逆模11,所以在模11算法中乘以10和除以10具有相同的效果。这就是为什么Tony在上面的一些评论中碰巧得到了正确的答案。谢谢Óscar,这对一些数字对有效,但对其他数字对无效。给我一组数字进行测试,特别是那些失败的数字,我会看看我能做些什么来帮助你。HanksÓscar,这对一些数字对有效,给我一组测试的数字,特别是那些失败的,我会看看我能做些什么来帮助你谢谢卢克,我怀疑这就是我要做的。您对生成这样的表有什么建议吗?我猜我需要一个多维数组?我不明白你为什么需要多维数组。如果你只做模11的运算,计算模11的1到10的倒数,然后把它们放在一维数组中。如果你正在处理大量的模,或者任何大的模,一个表都不是一个好主意。谢谢Luke,我对我要做的事情感到有点困惑,现在对我来说还为时过早:。我现在已经使用数组构建了一个逆表,现在一切都按计划进行了。谢谢你的帮助!!卢克,你帮了我大忙,我想知道我是否可以最后一次请求你的帮助。简单地说,我需要一种在Java中输出7的方法,当我输入y=-4%11时。有什么建议吗?@Tony:一种可能的表达方式
处理负数和正数的是y%11+11%11。感谢卢克,我怀疑这就是我要做的。您对生成这样的表有什么建议吗?我猜我需要一个多维数组?我不明白你为什么需要多维数组。如果你只做模11的运算,计算模11的1到10的倒数,然后把它们放在一维数组中。如果你正在处理大量的模,或者任何大的模,一个表都不是一个好主意。谢谢Luke,我对我要做的事情感到有点困惑,现在对我来说还为时过早:。我现在已经使用数组构建了一个逆表,现在一切都按计划进行了。谢谢你的帮助!!卢克,你帮了我大忙,我想知道我是否可以最后一次请求你的帮助。简单地说,我需要一种在Java中输出7的方法,当我输入y=-4%11时。有什么建议吗?@Tony:一个处理负数和正数的可能表达式是y%11+11%11。