问题描述
对于 -2%%5 和 -2%%7。余数是 3 和 5。我试着看看他们是如何到达 3 和 5 的
a == (a/b)*b + a%b
但我仍然没有 3 和 5。负数如何在 R 中取模?
解决方法
R 与“floored Division”方法一致。
还要考虑您的除数在哪里,例如2 %% -7
。
在你的情况下,它是这样的:
a <- -2
b <- 5
(a %/% b) * b + a %% b #== a
#> [1] -2
all.equal(a,(a %/% b) * b + a %% b)
#> [1] TRUE
这里的 %/%
是底除法,%%
是这方面的余数。即
quotient <- floor(a/b) # = a %/% b
remainder <- a - b*q # = a %% b
a == quotient*b + remainder
#> [1] TRUE
Wikipedia 对此进行了很好的讨论。