- 在线时间
- 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】* e, v3 W7 s& E/ h
本帖来自:数学中国 作者: 木长春 日期: 2009-11-15 19:51 您是本帖第535个浏览者* y- c) X( p" w/ ^; X
昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:% Z, F, r) S, R5 C, e
: @7 j! \3 d3 Z( O1 ?
通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:- @, ? K. r9 C4 I
当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。
( N! S2 r. F3 B8 {" d; ~, l6 ^ 这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。, x3 P# |8 x5 o( @2 |$ x2 y; b
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 B& Q) \; T3 @6 q4 V4 O4 H x/ C/ A* b0 ~% M! U
7 N9 \" x% W* O* {% e# m两个异号整数取模取值规律 (当是小数时也是这个运算规律,这一点好像与C语言的不太一样)
3 i. s! H1 c8 h# m" n l! T7 z8 q& k: G
先将两个整数看作是正数,再作除法运算7 y% C& Q- P4 o: \0 _) S
①能整除时,其值为05 O# Q2 ~! A, ~9 ]3 {' h, D
②不能整除时,其值=除数×(整商+1)-被除数
0 t) u: Q7 A* [* H8 V( T2 k) f1 `1 z, K: V
例:mod(36,-10)=-4% n7 e1 P8 i$ U3 @
即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。
2 C3 z3 \ I a5 @/ B! J例:mod(9,1.2)=0.63 t. Z3 Z. ~" e/ @) A; @+ b. z
例:
) t3 z' `4 h( q" v>> mod(5,2)% R4 ~- o( R5 r C1 S6 w
ans =1 %“除数”是正,“余数”就是正4 _% s8 l+ m: E$ @# ?
>> mod(-5,2)
$ i$ ?" S1 M% J9 x( `+ Sans =1
s4 s( p! f: O( R) p>> mod(5,-2)
9 [) {# Z2 U% o+ s3 s" oans =-1 %“除数”是负,“余数‘就是负 I' W+ l9 z B( U* b4 s- K0 L
>> mod(-5,-2)6 a2 b! c- o$ I/ ]! v' m# f
ans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同- q0 D; G- t' c. E6 g) J% p* g
>> rem(5,2)) H; l2 j" X5 N5 l
ans =1 %“被除数”是正,“余数”就是正
* c5 d3 h9 S# @. B+ l' L2 {1 X>> rem(5,-2)% r$ A% h2 ~( R! E
ans =1; L, N: h8 z# J. T# S' ]
>> rem(-5,2)3 n$ m* B3 i' X! V8 }
ans =-1 %“被除数”是负,“余数”就是负
3 ]3 _+ n M: u; M>> rem(-5,-2)8 ~6 I# ?) Q1 G; Y. x
ans =-1
# Z3 E7 e/ x; J- l% Y9 Y( d2 |( |2 z
2 n: M Q3 ~* h) o* o' Q3 _* a: |4 X- R
慢慢体会,两者确实不一样8 E3 J: g9 z @. [5 G
|
zan
|