我正在寻找适用于 R 语言中 %% 运算符的方法。
10 %% 10 # 0
20 %% 10 # 0
对这两个结果的怀疑:
10 %% 20 # 10
2 %% 8 # 2
你能帮我更好地理解最后两个结果吗?我有点困惑。
最佳答案
没有错:
10 = 1 * 10 + 0
20 = 2 * 10 + 0
10 = 0 * 20 + 10
2 = 0 * 8 + 2
模数是
+
之后的数字.一般来说,对于两个数
a
和 b
,有a = floor(a / b) * b + (a %% b)
让我们写一个玩具函数:
foo <- function(a,b) c(quotient = floor(a / b), modulo = a %% b)
foo(10, 10)
#quotient modulo
# 1 0
foo(20, 10)
#quotient modulo
# 2 0
foo(10, 20)
#quotient modulo
# 0 10
foo(2, 8)
#quotient modulo
# 0 2
更新 : 而不是使用
floor(a / b)
要得到商,我们也可以使用 a %/% b
.
关于r - 理解模运算符 : %% 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38524774/