数学建模社区-数学中国

标题: 求解4000*x1+3000*x2+2000*x3=30000的自然数解程序 [打印本页]

作者: mudan    时间: 2012-10-29 16:54
标题: 求解4000*x1+3000*x2+2000*x3=30000的自然数解程序
  1. for x1=1:13; n- Q4 t' ]% ]7 Q+ s+ u
  2.     for x2=1:13! W) l& V" H1 @  `7 @* o- g* m7 a
  3.         x3=(30000-4000*x1-3000*x2)/2000;
    # T/ w  q4 e6 ?+ S
  4.         m=13-x3-x1-x2;
    8 H1 p+ Y) X' i. w
  5.         if sign(x3)>=0 &  rem(x3,1)==0 & sign(m)==0  ' W0 e8 n" N) u! Z, S
  6.             disp([x1,x2,x3])
    * d3 o1 D. o( R* q4 a
  7.         end: p$ V3 `$ z1 E. A$ H' J+ b5 Q
  8.     end
    " l; g/ W" S; A0 u# e* X$ f# B
  9. end
复制代码

作者: madio    时间: 2012-10-30 06:38
rem这个函数可以换为mod,容易知道一些!
' e3 E& S& C/ i$ Q0 W! u8 E7 L' d( Zmatlab中的rem()和mod()函数matlab的rem()和mod()函数/ w4 A& C+ U8 H
rem(x,y):求整除x/y的余数
  }3 I+ h9 q5 T' ]  k2 U& {- ^( P: I  B1 r/ c
mod(x,y):求模
; A/ t% b% W, l2 j" a2 a! j. p8 t7 _% @% W- y+ h

  u, c: ]5 s9 @  m: z- p  L
, A2 x5 r4 R/ I$ u- M: arem(x,y)=x-y.*fix(x./y);  (fix()向0取整)3 Y; ?- p0 y/ {8 a6 u9 [/ n+ V# z  g/ r
3 ?$ \6 X: f7 ?7 M' Z( K! S5 g
mod(x,y)=x-y.*floor(x./y); (floor()向左取整)
6 f6 c* ^% |1 R6 ~! f4 }- W+ g* l  E- x1 @8 X7 |+ e  U
如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样): S* d8 Y5 t3 _( ]0 ~

  L$ W5 m+ F; J1 n3 U+ D如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什么结果就选择用什么函数)
4 e: f3 w7 w  y# n, g
6 d  M( w, z% k! b9 E" c当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟被除数(y)一样,用mod()函数2 L4 b! ]8 u9 W$ I
1 I0 @7 g9 G: z" t, O# U! N
例如:& g. A3 |# L7 m" p" v
, q( H& e+ U3 v' }; B1 m& @
rem(3,2)=1;mod(3,2)=1;
5 G4 M  S# m( p+ Z: V$ n$ W1 Q9 F1 v  p) A) u( Y
rem(-3,-2)=-1;mod(-3,-2)=-1;
9 F& @# ]6 q2 \( I: v; S0 {8 [8 y: F5 {# j( P/ P" n
rem(3,-2)=1;mod(3,-2)=-1;
& m) W( ^2 l' f: a, N7 r9 c/ K/ W# b, |, `
rem(-3,2)=-1;mod(-3,2)=1;7 h0 ^5 s* z! x% M' U  J
, e% Q, V8 D4 I0 c

, @8 H5 W+ u9 f0 D
" W- ~; r9 r( s6 @. I; `- Ymod(3,2)=rem(3,2)=1;
1 j" \3 _2 O% t, L+ i& g5 W8 Z" j0 B/ d* S
mod(3,-2)=rem(3,-2)-2=1-2=-1;
) N/ x, t5 l" ^2 t3 |* ~/ W# R! ~2 t4 {3 \
mod(-3,2)=rem(-3,2)+2=-1+2=1;% T1 U5 ]- r, @

作者: mudan    时间: 2012-10-30 17:43
madio 发表于 2012-10-30 06:38
5 i3 b9 e* Q" Prem这个函数可以换为mod,容易知道一些!. F$ h) _! B3 f2 u% t/ @
matlab中的rem()和mod()函数matlab的rem()和mod()函数+ O* G' O8 ~5 M( j3 @
rem(x,y) ...
  ?% B6 E% M) M  r7 s
讲的很细致,坛主能不能推荐一本matlab程序实现的书?侧重实例的,谢谢
作者: wy617958197    时间: 2014-9-2 13:07

7 m9 Q* g3 u6 y8 `多谢分享资料!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5