数学建模社区-数学中国
标题:
取模(mod)与取余(rem)的区别——Matlab学习笔记【09-11-15】
[打印本页]
作者:
木长春
时间:
2009-11-15 19:51
标题:
取模(mod)与取余(rem)的区别——Matlab学习笔记【09-11-15】
昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:
7 ?4 ^4 c' T6 V; M3 e
2 N3 y+ F" i+ t$ L0 P' C
通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:
" x+ O) V1 n t6 J7 K) m1 r
当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。
3 }$ v1 k4 N; _/ m
这是由于这两个函数的生成机制不同,
rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。
8 D+ f7 c: Z `+ s1 A! y) 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)
' y3 ]/ n* Z* }
? Z Z6 |3 Q/ H; Z6 D% i% T
3 f7 e) x" Q# O' @5 R) K: [
两个异号整数取模取值规律
(
当是小数时也是这个运算规律,这一点好像与C语言的不太一样
)
3 A" p7 D7 Q$ u
2 u/ B4 H# L9 i! ]3 _# d% d
先将两个整数看作是正数,再作除法运算
, R8 V' w+ H! h# b; E+ d
①能整除时,其值为0
7 s1 t/ u( X" G9 M5 l% p- U
②不能整除时,其值=除数×(整商+1)-被除数
3 Y, x& S2 d, ^7 K7 }
, ^9 ~4 I( |5 r/ b9 F4 o8 T- ?
例:mod(36,-10)=-4
' k* m0 S8 ]& O3 Q5 S+ `. F& J
即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。
A' H; @8 N8 C, |, v# N
例:
mod(9,1.2)=0.6
! p, j/ O" h1 I
例:
8 t" M0 J- C' Q4 p
>> mod(5,2)
1 D! `0 y$ W- M2 T; E. f
ans =1 %“除数”是正,“余数”就是正
" t6 \. O" L$ W
>> mod(-5,2)
( O r! K) e$ E2 o5 R
ans =1
+ _' h& w4 A& d) n2 ~ z
>> mod(5,-2)
/ ^3 h$ ^# X0 s5 V" @6 ^" ?# h9 t
ans =-1 %“除数”是负,“余数‘就是负
( T4 \; d3 B+ g* C* I; O& X/ G
>> mod(-5,-2)
$ o" K+ v7 w% f/ B& F: a7 @2 G
ans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同
/ k9 i# G4 @! R8 F5 p5 @
>> rem(5,2)
9 d" j1 j0 D8 w/ j3 d# }
ans =1 %“被除数”是正,“余数”就是正
. j0 O1 v0 X8 e% P" w( z' x3 o
>> rem(5,-2)
2 ]$ Q. D- r/ Y2 I2 G- [
ans =1
4 Q/ }' A. X& G9 ]. d* p$ i
>> rem(-5,2)
' _6 |: l$ W' \5 v4 H
ans =-1 %“被除数”是负,“余数”就是负
U% {+ p2 z. Y
>> rem(-5,-2)
/ {+ a) ^" p* W0 @
ans =-1
4 K6 R" W2 @1 X% |. |
; @: d! K- T, K5 |+ f: _
) p: w6 g3 L0 _3 J& V4 M0 p
慢慢体会,两者确实不一样
作者:
大笨象
时间:
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