【发布时间】:2014-12-01 03:39:00
【问题描述】:
谁能解释一下模块化算术在编程中的工作原理?我知道它用于对大值进行操作。
例如,使用 int 数据类型计算 B(1000000, 2) 的二项式系数。我假设我们不能使用 int 数据类型进行乘法运算,因为它涉及计算像 1000000 这样的大值的阶乘!它有数百万位数字,不适合 32 位或 64 位整数。
我知道模运算可以解决这类问题,但我不明白它是如何工作的。
【问题讨论】:
-
它只是意味着“剩余”。
3 modulo 2 = 1。例如“3 除以 2 得到余数(也称为模数)1” -
我用谷歌搜索了你的标题并找到了答案。虽然,我没有在 Stackoverflow 上找到这个答案......
-
一般来说,人们无法回答如此宽泛的问题。 “猫是怎么工作的?”好吧,有很多部分可以解释来回答这个问题。 “猫是如何获得氧气的?”通过肺部,每 15 秒呼吸一次,等等。明白了吗?
-
1 个例子:: (3*6)%5=((3%5)*(6%5))%5
-
参考。 Modulo operation 了解一般背景。不同语言之间的精确运算可能会有所不同,特别是当存在负操作数或被除数符号匹配时,但通常建议粗略阅读。
标签: java performance scalability binomial-coefficients