- 在线时间
- 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】4 \. G* N7 K" H5 Q/ d% ~
本帖来自:数学中国 作者: 木长春 日期: 2009-11-15 19:51 您是本帖第535个浏览者
: r8 I- b8 @2 X1 d. T+ ~昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:' N! k3 `, w- d0 ?4 {( `
/ Z) u; V; i7 L$ U3 f通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:
! q/ o. L/ \( Q8 [! e% ^+ P 当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。
$ F7 V! E! X2 Z 这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。
% o/ Y& k2 I+ H ^ rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)
7 ^$ \ o: r# `9 ]1 G; ~1 M) e# j2 B+ N& N# X
, w3 c0 ?/ @5 |
两个异号整数取模取值规律 (当是小数时也是这个运算规律,这一点好像与C语言的不太一样)
$ j" X3 u2 t( d; m' D. P( O; ^; X' _1 T1 B
先将两个整数看作是正数,再作除法运算! ^, e6 ~& V3 k" \
①能整除时,其值为0
% G! Z' n4 c$ k/ y# f+ F( ]②不能整除时,其值=除数×(整商+1)-被除数
3 V8 A6 \$ N3 i: I& W6 @8 f1 e# k; l) a: M9 j5 @3 t3 J1 A
例:mod(36,-10)=-4
! A/ w5 L: Q3 d: \即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。
2 L. ?2 C, y. n3 ? q. Z& d9 O9 m例:mod(9,1.2)=0.6% y% h F9 d! ~4 V9 i
例:0 Y) _5 A0 }* |+ N5 M
>> mod(5,2)
2 P3 R1 s% a. d5 p8 Rans =1 %“除数”是正,“余数”就是正
# s5 U! O$ s2 c>> mod(-5,2)2 \. n) ], Q5 h/ Z6 b$ D4 C
ans =1 b5 @- Q! q0 O5 U' e; [" j
>> mod(5,-2): f" F& v4 q. r& u: f4 d
ans =-1 %“除数”是负,“余数‘就是负
0 L# S- f3 [# s& M" f9 \; e( N>> mod(-5,-2)
" M' `: I9 E1 q( w+ Xans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同 `- @2 q4 t# j7 V7 J. ^- w" F
>> rem(5,2)
% Z: q2 {1 x3 Z4 Xans =1 %“被除数”是正,“余数”就是正
5 U7 j( N. _5 S% v: d>> rem(5,-2)2 _) r. U# [+ T$ {! f
ans =1# d2 F6 |) K( R0 M7 R6 }
>> rem(-5,2)( w: s, e; G: k6 j
ans =-1 %“被除数”是负,“余数”就是负
* [" y3 b2 @( R, f8 I>> rem(-5,-2)- D) Y" q! m1 ^7 r
ans =-1
, |2 f" C0 z, E& Q7 o3 N* E+ Z7 ^" \/ n. F( ~
2 g0 I. C2 @. F! V" O. M1 X- P/ q8 _1 W慢慢体会,两者确实不一样: O/ R7 y) h( O; }' B4 [& [
|
zan
|