-5割る2はいくつ?

割り算で、割る数と割られる数のどちらかが負である場合、その商と余りは数学的には二通り存在する。

たとえば、-5割る2の場合は、

1) 商が-2で余りが-1の場合 [2x(-2)+(-1)=-5]と

2) 商が-3で余りが 1の場合 [2x(-3)+1=-5]の

二通りである。

プログラムではどっちの結果になるのだろうか。

試しに-5を2で割った余りを表示してみる。

Java-5 % 2-1
C-5 % 2-1
VB(A)-5 Mod 2-1
Ruby-5 % 21
Perl-5 % 21
Gauche(modulo -5 2)1

どちらかに寄っていると思ったら、言語によって結果が違った。

なにか理由があるのだろうけど、今日は調べる元気がないので寝る。

コメント

コメント一覧 (2件)

  • おもしろい結果ですね。
    ちなみにC#の場合は -1 で、これは
    The result of x % y is the value produced by x – (x / y) * y.
    という計算式だそうです。

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次