- 在线时间
- 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】
% c8 @5 [0 \3 u" j: `本帖来自:数学中国 作者: 木长春 日期: 2009-11-15 19:51 您是本帖第535个浏览者 y2 U }% U5 E3 u1 F' y8 q
昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:
; E. I5 B- q) j8 Z) B- ?" E
! W: Z) v$ b/ W" Z! W* q! o通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:
( ?0 W8 P/ X# S- z5 z: ?& t2 c. E5 \ 当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。* {2 {! X1 E3 a A
这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。
3 T6 X. b- W v$ 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)
: q6 R' ?' [, S" j- B/ }' V
& k* i' Y( }4 Z3 o3 }5 y9 j' p4 D* b/ z9 a+ f! |
两个异号整数取模取值规律 (当是小数时也是这个运算规律,这一点好像与C语言的不太一样)
" b) K Q1 M8 K) W: `
6 m" f9 Z/ D, ~ V: p* Q; h& W1 @先将两个整数看作是正数,再作除法运算# f$ s$ {2 d9 m$ d' g8 G& I
①能整除时,其值为07 |& }& e- z5 ^
②不能整除时,其值=除数×(整商+1)-被除数6 F4 c7 C+ f, E1 I
1 Q4 m1 E L2 A/ s3 C3 D例:mod(36,-10)=-44 Y+ k7 S% `( t% [% F1 L4 a- q
即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。% T l6 R: w2 n+ t6 B7 x
例:mod(9,1.2)=0.67 B0 U& P# K) N8 e! K/ _, U
例:- F' x2 O# {2 M; [! M$ x; F9 Z
>> mod(5,2)2 X5 M& ]% E/ E( L% Q! _7 W- k* a, f
ans =1 %“除数”是正,“余数”就是正
3 p7 K% ^% }" b7 j" S0 d3 V- D>> mod(-5,2). r5 G$ Z U+ l. z5 F7 T
ans =11 w( _# {* d8 Y6 \- ` V7 D. r
>> mod(5,-2)6 f/ d( r1 u: K7 g0 |+ N8 {/ W1 A
ans =-1 %“除数”是负,“余数‘就是负- M5 a M7 R5 V- _- x: A
>> mod(-5,-2)
9 ?4 n- v$ @3 @7 ^( V( M7 Bans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同4 n: T b; i8 P. h0 c6 B
>> rem(5,2)% G6 t& n* p% f- z
ans =1 %“被除数”是正,“余数”就是正$ x" |: _2 e' T0 } l' ?( X
>> rem(5,-2)
I6 ?& m7 f/ M6 {, xans =1' w5 N( c: V( Q) ^
>> rem(-5,2)9 o5 x8 u4 B6 H
ans =-1 %“被除数”是负,“余数”就是负5 l# @ d5 T8 g8 [0 I5 I! Z' T
>> rem(-5,-2)
O/ R3 K5 b2 H- Aans =-1
- q/ F1 {6 g/ V. b1 U1 x1 P- ^8 w, W% }- x
+ y- b6 i) S) H& [0 J8 |6 f慢慢体会,两者确实不一样% l- T( c' Z# ]7 k8 K6 X
|
zan
|