- 在线时间
- 57 小时
- 最后登录
- 2013-10-20
- 注册时间
- 2012-3-19
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 1080 点
- 威望
- 0 点
- 阅读权限
- 40
- 积分
- 433
- 相册
- 0
- 日志
- 0
- 记录
- 7
- 帖子
- 196
- 主题
- 13
- 精华
- 0
- 分享
- 82
- 好友
- 20
升级   44.33% TA的每日心情 | 开心 2013-10-20 20:29 |
|---|
签到天数: 103 天 [LV.6]常住居民II
- 自我介绍
- 建模编程方向
 群组: 学术交流A |
取模(mod)与取余(rem)的区别——Matlab学习笔记【09-11-15】
) q# e) ~1 {& N本帖来自:数学中国 作者: 木长春 日期: 2009-11-15 19:51 您是本帖第535个浏览者
: B/ e* ]" n5 ?1 e/ E) E* d( g' q昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:
, Z9 T, d3 [& r/ }: k" u0 F3 L {! c- q2 z
通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:
2 T2 p$ K+ ]0 p! @4 c# e% O 当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。
( S1 H0 M- D7 _* a 这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。7 t; \+ \: p7 U4 H {5 X
rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)' X7 O) A& C: i. G, g
, X& E u* u" C# x- Y
: Z" [3 q4 G) R. ~$ y两个异号整数取模取值规律 (当是小数时也是这个运算规律,这一点好像与C语言的不太一样)
9 n* m( T; S0 t4 L$ |- o/ S) ?( x7 g6 T- \: J5 ]2 b
先将两个整数看作是正数,再作除法运算
9 p Y6 k* y0 j, W/ ^# a, i①能整除时,其值为0
6 O" q( M9 p# q6 H7 y. Y% i; O0 ^/ l②不能整除时,其值=除数×(整商+1)-被除数
; D/ L9 D# }0 w# r
# u& |3 u& ]% @) @" ^: c例:mod(36,-10)=-4
) U, |. z& N7 G" I8 R即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。7 C6 b5 t" f* `/ ^# H3 s7 G& M# s
例:mod(9,1.2)=0.6
0 c% R0 l/ ^- l3 R4 l" q0 c例:
* V0 t# h1 j2 t0 E3 p>> mod(5,2)2 }% _: Q, a0 i- `
ans =1 %“除数”是正,“余数”就是正
' u$ a$ I Z0 `$ D. q5 C>> mod(-5,2)# ?1 o7 ~1 s; M) W1 J
ans =16 ~2 \3 T9 y6 q7 _( J; |
>> mod(5,-2)3 s7 O6 _' J+ j. p& h0 l/ U
ans =-1 %“除数”是负,“余数‘就是负
1 Z) X" w) l: u0 W! e" }>> mod(-5,-2)+ k+ s4 B" a. K+ Y
ans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同6 ?, U0 _" i3 h7 O- K
>> rem(5,2)0 Q5 i, b9 d+ ~) _
ans =1 %“被除数”是正,“余数”就是正
1 g/ L5 b8 w5 x; J. w>> rem(5,-2)9 H8 i+ a9 _$ g; ]3 r
ans =1
, g, p5 A; a& |2 I" C>> rem(-5,2)/ q& L, f; f8 G0 B o
ans =-1 %“被除数”是负,“余数”就是负( Q+ ~6 ^5 L2 H% |, q
>> rem(-5,-2)
/ v( F3 c% n- h: Z! ?) S" Nans =-1
1 R- a, ]2 w+ V
) M' \4 K }7 _ M( u x
: i% D; T7 y4 N K/ U! R f/ {慢慢体会,两者确实不一样& e& J" K- b ^; Q" Z8 A
|
zan
|