1. ホーム
  2. r

[解決済み] modulo演算子の結果を理解する:%%。

2022-03-03 07:30:39

質問

を理解しようとしているのです。 %% 演算子はRで動作します。

10 %% 10  # 0
20 %% 10  # 0

この2つの結果はどうでしょう。

10 %% 20  # 10
2 %% 8  # 2

最後の2つの結果を理解するのに役立ちますか?少し混乱しています。

どのように解決するのですか?

何も問題ありません。

10 = 1 * 10 + 0
20 = 2 * 10 + 0
10 = 0 * 20 + 10
2  = 0 * 8  + 2 

moduloは + .


一般に、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 .