- 在线时间
- 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】, ?, Z4 c' h9 T; K' O* p0 @
本帖来自:数学中国 作者: 木长春 日期: 2009-11-15 19:51 您是本帖第535个浏览者9 |, t3 \4 U" w: t
昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:
$ c) i/ j7 q1 b/ W, t5 E" j2 v1 E7 g! ~( y* _4 {' D- Y3 n
通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于: Z7 M! |- I( u/ |2 q. v
当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。
p% t* j* Y+ l8 ^2 H/ ^, [ 这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。
& B R7 S* r6 m- c& ]# M6 a& O rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)
0 i5 g% v! V: {8 `" U h% \$ a
# R4 q6 [8 k4 Q4 y1 A+ ~
% ~: f& K" @8 o$ ~7 ]. O& M! ]两个异号整数取模取值规律 (当是小数时也是这个运算规律,这一点好像与C语言的不太一样)
$ d2 L4 _; }$ _3 u* z
! y0 y8 Q" }/ ~7 F/ J6 l+ m8 {先将两个整数看作是正数,再作除法运算+ `: u0 H# i1 i" ^2 g
①能整除时,其值为0
. b0 N/ Q! X' x) Z6 ]+ |. Y②不能整除时,其值=除数×(整商+1)-被除数
0 Y- r; K3 X$ g% u+ j
5 K2 S! `+ f: h8 P' o8 ?' J1 g. J例:mod(36,-10)=-4
7 `- d3 k! Z- A K% J; C* H5 w即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。( g. I, n- h' h2 }
例:mod(9,1.2)=0.6
2 E2 ]1 I' p7 k% l/ y% o* v4 h例:
% P4 k1 W9 u$ s$ A>> mod(5,2)% V/ B+ Y$ k/ P
ans =1 %“除数”是正,“余数”就是正
* P& B( H+ v9 @+ z, B- W7 R>> mod(-5,2)5 p% L' A/ Y. a8 d1 g* l* t
ans =1
& z, D8 ~+ p8 T! m7 o6 o>> mod(5,-2)
1 p' b- M6 ]( S4 {* _' e5 I3 k+ @ans =-1 %“除数”是负,“余数‘就是负
: Y; P) z8 p7 ~7 Y7 r>> mod(-5,-2), p" n' x2 m% ] R
ans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同2 ~9 y& x; @8 n
>> rem(5,2); K( N6 A! ?3 w2 V+ }/ l' _& |/ `
ans =1 %“被除数”是正,“余数”就是正
o# d9 z9 J) W>> rem(5,-2)
" e8 ~) A) B- ?) d+ V( hans =15 g6 e. V5 r2 P4 T8 G
>> rem(-5,2)" b+ K/ A d% h! V' [8 [
ans =-1 %“被除数”是负,“余数”就是负9 Y5 i$ a# @$ ]6 ?& S: @+ p7 S
>> rem(-5,-2)- B" ~3 X0 j% a" G4 Q, A3 F$ Q
ans =-1
; r, l& C& y$ t: Q: U7 ~* J; o
( V9 x6 q) Z+ r6 I
0 C8 K8 s! \2 \5 ]. S# s慢慢体会,两者确实不一样0 l3 g+ }$ e9 L5 \' F) i
|
zan
|