回覆列表
  • 1 # 使用者4011631611289

    取餘,遵循儘可能讓商向0靠近的原則

    取模,遵循儘可能讓商向負無窮靠近的原則

    符號相同時,兩者不會衝突。

    比如,7/3=2.3,產生了兩個商2和3

    7=3*2+1或7=3*3+(-2)。因此,7rem3=1,7mod3=1。

    符號不同時,兩者會產生衝突。

    比如,7/(-3)=-2.3,產生了兩個商-2和-3

    7=(-3)*(-2)+1或7=(-3)*(-3)+(-2)。因此,7rem(-3)=1,7mod(-3)=(-2)

    --------------------------------------------------------------------------------------------------------------------------

    2017-7-28修改:

    解釋:為什麼遵循的是這樣的原則?

    在matlab中,關於取餘和取模是這麼定義的:

    當y≠0時:

    取餘:rem(x,y)=x-y.*fix(x./y)

    取模:mod(x,y)=x-y.*floor(x./y)

    其中,fix()函式是向0取整,floor()函式是向負無窮取整

    以前邊的運算為例:

    7/(-3)=-2.3,在這個運算中,x為7,y為-3,分別呼叫fix()和floor()兩個函式,得到結果是:

    fix(-2.3)=-2

    floor(-2.3)=-3

    所以,rem(7,-3)=1,mod(7,-3)=-2

  • 中秋節和大豐收的關聯?
  • 咖啡發黴了還能喝嗎?