数学建模社区-数学中国
标题:
取模(mod)与取余(rem)的区别——Matlab学习笔记【09-11-15】
[打印本页]
作者:
木长春
时间:
2009-11-15 19:51
标题:
取模(mod)与取余(rem)的区别——Matlab学习笔记【09-11-15】
昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:
1 P- z$ W7 t+ a% s+ _" ?/ f
2 e- g- R0 e n7 \
通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:
) r* ]- g# _0 w o7 M, \7 w8 `* ^
当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。
0 P& J, F& K: C3 Z ?* F) u3 w/ H9 ~& w
这是由于这两个函数的生成机制不同,
rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。
6 z9 ~# _3 X/ N. E! A9 s) F
rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)
. e1 x4 `, n4 r9 C
: V& \8 ]( P3 ^9 X
& u" ^+ i- i8 {1 t
两个异号整数取模取值规律
(
当是小数时也是这个运算规律,这一点好像与C语言的不太一样
)
! r( Y6 P" H) e0 h- P+ N8 O) c: N
X" D) Y1 `( Y" P
先将两个整数看作是正数,再作除法运算
4 b8 Q4 [/ u* Y( k+ F( e/ d
①能整除时,其值为0
: G$ {. p9 F0 z$ i, i- t) Y
②不能整除时,其值=除数×(整商+1)-被除数
8 b( d0 s" ~8 X2 F+ \" V
$ r% a/ q. k5 Q9 C T
例:mod(36,-10)=-4
! W$ d) _2 Y2 C
即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。
+ e: s5 T8 @4 L# n [2 g4 t
例:
mod(9,1.2)=0.6
9 e: u) q1 \$ [
例:
3 Y" k7 J; b4 U" A- p8 x3 g2 H
>> mod(5,2)
& A0 N! |1 E2 n3 R+ P# |
ans =1 %“除数”是正,“余数”就是正
( Z( y6 e% E% i
>> mod(-5,2)
5 q; v, U+ F/ G, h5 m0 ]
ans =1
& L" G* m" c- Z- J' s2 s
>> mod(5,-2)
3 F% ~0 L+ u0 F/ G; E% H6 b. {1 N
ans =-1 %“除数”是负,“余数‘就是负
5 j- w& b, h1 `' f; b, i1 \7 O7 j
>> mod(-5,-2)
+ l6 f. Q( H' K1 |6 e
ans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同
' k5 p9 x" w9 V. e5 X
>> rem(5,2)
, s# d7 ?$ \% w2 k% U1 c9 N
ans =1 %“被除数”是正,“余数”就是正
$ k9 O ~5 L8 C! W# x+ x. F$ X
>> rem(5,-2)
! ?% b( w7 {) N3 y( P' S. ^
ans =1
% c7 n, | B6 N0 U1 n
>> rem(-5,2)
4 R/ R! S7 c- B. B) c
ans =-1 %“被除数”是负,“余数”就是负
; ?0 P; F8 l; {6 _
>> rem(-5,-2)
2 @& R/ n) I% R1 X, e% U
ans =-1
9 k6 {' D' B+ Y, A+ m& r
' l* `2 Q7 e. G$ D7 S% g( M# ?% w
5 N( e# e3 Z* W1 I- k
慢慢体会,两者确实不一样
作者:
大笨象
时间:
2009-11-15 22:39
不错。自己动手丰衣足食~学习方法很好,兴趣很浓呀。
作者:
惟楚有才
时间:
2010-3-3 21:53
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
作者:
high1989
时间:
2010-4-24 14:15
多谢,Matlab自带的帮助看不懂……
作者:
土豆炒豆芽
时间:
2010-10-13 09:03
不过楼主,还是不明白呀~当被除数时负数时比如mod(-5,2),这时取得n=-2吗?
作者:
paulci
时间:
2012-8-10 09:47
不错,学习了,楼主仔细
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5