我在Java中做了一些纠错,并且缩短了很长一段时间;
在模式11下:
-4 mod 11 = 7
Run Code Online (Sandbox Code Playgroud)
我已经通过使用谷歌的计算器和几个在线模数计算器证实了这一点,但我不能为我的生活弄清楚如何用Java做到这一点.
我在想我需要使用一个倒数表来找到正确的数字,但我似乎是围成一圈.
任何输入将不胜感激.
预先感谢
托尼
我正在尝试创建一个mod3返回输入模3 的函数,但我的语法错误.我不明白为什么语法double与文档中的示例有任何不同.
$ jconsole
double =: * & 2
double 1
2
double 2
4
double 3
6
mod3 =: 3 | &
|syntax error
| mod3=: 3|&
Run Code Online (Sandbox Code Playgroud) 可能重复:
为什么这些数字不相等?
刚注意到R中的这个错误.我猜它是代表0.6的方式,但是谁知道到底发生了什么?
根据R:
0.3 %% 0.2 = 0.1
0.4 %% 0.2 = 0
0.5 %% 0.2 = 0.1
**0.6 %% 0.2 = 0.2**
0.7 %% 0.2 = 0.1
0.8 %% 0.2 = 0
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?
如果我输入:
int main() { return 0 % 0; }
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误:
error C2124: divide or mod by zero
Run Code Online (Sandbox Code Playgroud)
这背后的原因是什么?答案不是零吗?
我只想向您展示python中的操作结果.我无法解释.
>>> 1.0%1.0
0.0 (OK)
>>> 1.0%0.1
0.09999....
>>> 1.0%0.001
0.00999....
>>> 1.0 %0.0001
0.000999...
Run Code Online (Sandbox Code Playgroud)
... 等等.我需要一些东西让我能够理解'x%y'的余数是否为0.0,即'y'将'x'恰好分为N次,其中N是整数.由于之前的行为,我不知道如何设置一个可能的容差来确定剩余部分是否接近0.任何帮助?
作为类的程序的一部分,我必须以特定的方式打印输出,分成16个字节的块.我一直在寻找一种将指针转换为int或其他方式来对存储在变量中的指针地址执行模数或除法运算的方法.我遇到了障碍,这里的任何人都知道如何执行这个看似简单的操作吗?这是函数的基本形式:
void printAddress(char *loc, char *minLoc, char *maxLoc) {
minLoc = (loc - (loc % 16));
maxLoc = minLoc + 16;
printf("%p - %p - %p", minLoc, loc, maxLoc);
}
Run Code Online (Sandbox Code Playgroud)
我删除了所有我投射它的尝试,以明确我正在尝试做什么.
我需要计算一个大数的阶乘(<= 1.000.000),我需要结果模数1000000007.我写了以下内容,但它在运行时生成错误(test.exe已停止工作).它仅适用于小数字.
long long unsigned modulo(long long unsigned nr){
return nr % 1000000007;
}
long long unsigned fact(long long unsigned nr){
if(nr)return modulo(nr * fact(nr - 1));
else return 1;
}
Run Code Online (Sandbox Code Playgroud)
更新1:
long long unsigned fact(long long unsigned nr){
long long unsigned r = nr;
while(--nr){
r = modulo(r * nr);
}
return r;
}
Run Code Online (Sandbox Code Playgroud) 在C和C++中,INT_MIN % -1根据Shafik的帖子,行为 似乎是未定义/平台依赖的.
在Java中,%运算符是否会溢出?
考虑一下这段代码:
public class Test {
public static void main(String[] args) {
// setup variables:
byte b = Byte.MIN_VALUE % (-1);
short s = Short.MIN_VALUE % (-1);
int i = Integer.MIN_VALUE % (-1);
long l = Long.MIN_VALUE % (-1);
// my machine prints "0" for all:
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(l);
}
}
Run Code Online (Sandbox Code Playgroud)
上述结果是否存在独立于平台的保证0?
int num = 65537;
char p = (char)num; //char = 1;
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?它是p=num%(127+128)-1
或者p=num%256还是其他什么东西?我需要知道为什么p等于1.谢谢!
我必须把这个公式变成java代码:
如果我可以使用像Math.BigInteger这样的库会更容易,但遗憾的是我应该在没有它的情况下这样做.stackoverflow上的一些类似问题建议编写一个自己的bignum库,但我想在没有它的情况下这样做.
现在,我的进展是在这一步:
int h(String s) {
long value = 1;
int mod = ht.length;
for (int i=0; i < s.length()-1; i++) {
h += s.charAt(i) * Math.pow(256,i);
}
return (int) h % mod;
}
Run Code Online (Sandbox Code Playgroud)
我知道功率的值在整数范围内变得非常快,所以我想到编写一个自己的方法来计算值的功率和模数.我的数学知识还不足以知道何时使用模数以及如何简化事物.
提前致谢!