2010-07-24 60 views

回答

5

-1 modulo 5是根據定義,4.

+0

你是對的,是的,謝謝 – Gennadi 2010-07-24 11:36:26

+1

它不同於編程語言,你用哪個mod函數 – newacct 2010-07-24 15:42:52

6

由於MOD被定義爲正。 div和mod在樓層的基礎上運作,而/和rem則不會。

Prelude> let x=(-2) 
Prelude> let y=5 
Prelude> (x`div`y)*y+(x`mod`y) 
-2 
Prelude> y*(truncate ((fromInteger x)/fromInteger y)) + (x`rem`y) 
-2 
Prelude> x`rem`y 
-2 
Prelude> x`mod`y 
3 
Prelude> (fromInteger x)/fromInteger y 
-0.4 
Prelude> x`div`y 
-1 

附錄:作爲KennyTM正確地指出,我應該用QUOT,不/:

Prelude> (x`quot`y)*y+(x`rem`y) 
-2 
Prelude> (x`quot`y) 
0 

我根本不記得了,就太草率來關注一下吧。 「會做一個整數除法。

+7

'div'的對應關係應該是'quot',而不是'/'。 – kennytm 2010-07-24 12:12:18