r - 理解模运算符 : %% 的结果

标签 r operators

我正在寻找适用于 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 

模数是 + 之后的数字.

一般来说,对于两个数 ab ,有
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/

相关文章:

r - 多列的频率和百分比计数

c++如何打印每个整数在STL列表中出现的次数

perl - || =的含义是什么

string - R:子集匹配的单词

r - R中两个时间之间的时间差

r - 使用循环 ggplot2 将各种函数添加到同一个绘图中

r - 获取向量中缺失值的运行长度

java - 循环中带有 i+= 的代码不起作用

c# - "I"运算符,非整数和非 bool 类型除外

c# - 什么是运营商 `|=` ?我如何在 C# 中实现它?