Java模块划分
我正在做一些纠错,我需要在Java中的mod 11下划分两个数字 现在,通过使用模块化计算器,我知道: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在技术上无法执行模块化操作,我的一部分人认为我要么需要以某种方式计算逆运算,要么使用数组存储可能的输出值。不确定这是否是您想
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。