数学建模社区-数学中国

标题: 求解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
    # [4 H& [: }( e, M
  2.     for x2=1:13
    - g8 O4 X4 W% G# M7 E8 u' g& T
  3.         x3=(30000-4000*x1-3000*x2)/2000;
    / W! p$ [# R, j/ ~$ E$ W
  4.         m=13-x3-x1-x2;
    8 B7 ^' \# j9 t) ~
  5.         if sign(x3)>=0 &  rem(x3,1)==0 & sign(m)==0  * V) N) y! c" y6 G, B! f5 T
  6.             disp([x1,x2,x3])
    # k- F# R; D" j9 x8 @
  7.         end
    . I" g& h, s3 F& l! [! K
  8.     end
    : W" l1 Q; }; N) Q* S
  9. end
复制代码

作者: madio    时间: 2012-10-30 06:38
rem这个函数可以换为mod,容易知道一些!
' d! `, g( C" H9 n# g" k# z" L6 \matlab中的rem()和mod()函数matlab的rem()和mod()函数
$ P/ X8 I+ \/ p0 A+ h8 Yrem(x,y):求整除x/y的余数
* y, y5 j8 j# l; u
) r% i6 I$ `8 E, l- h- Q$ X# D6 O" Umod(x,y):求模
# b; Z6 U" F) W1 s/ L7 R# k% w; H  ]  Z" {$ W
# R: \  @7 M* b4 t5 _/ K1 l, Z

0 X/ B# B5 u+ W3 ~6 r+ krem(x,y)=x-y.*fix(x./y);  (fix()向0取整)2 W5 R8 R7 ~4 z  W' k
; u  l2 S7 }. ?
mod(x,y)=x-y.*floor(x./y); (floor()向左取整). `' o3 A2 y  f8 N  i7 E
7 }% P( k/ n1 a+ V. C
如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样)
% j5 d" |! M6 F2 v5 n- r
& a4 q  `; t$ L1 j; _6 D2 e如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什么结果就选择用什么函数)1 c- |  Y/ w/ V+ G2 B
2 H+ ^' E1 ]9 Z  h; }8 O* A
当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟被除数(y)一样,用mod()函数6 B3 l. T( w; X3 L. n" F& @/ F
2 K( ~2 A9 p1 I  R5 T9 Z
例如:3 \  R5 V0 C: P7 P6 {7 c
) U) X2 s. X  H$ [/ C; Z) N
rem(3,2)=1;mod(3,2)=1;- [" t* |1 }7 H* H
  n. l9 ~6 w( m8 J+ ~
rem(-3,-2)=-1;mod(-3,-2)=-1;
' e" T0 ]- V/ s4 E6 g5 h9 @1 i8 O
rem(3,-2)=1;mod(3,-2)=-1;) ?( r/ b0 r( l# e/ a- k

0 N, h/ i# I' j. irem(-3,2)=-1;mod(-3,2)=1;
$ P- D( ?+ O$ d" `" Q  F4 C" F1 U3 o2 s7 [( v# I
7 x" _8 j  S+ f4 B/ O! R

) a( t! G! K! h8 @2 s- hmod(3,2)=rem(3,2)=1;
+ ?$ Y# R  R  @. D
  q0 }8 [* J, \; h6 H) vmod(3,-2)=rem(3,-2)-2=1-2=-1;
6 L3 i: S6 q+ J5 g& X
% ~$ L3 ^7 i3 [3 tmod(-3,2)=rem(-3,2)+2=-1+2=1;2 ]0 ]6 P; Q8 D- A- \

作者: mudan    时间: 2012-10-30 17:43
madio 发表于 2012-10-30 06:38
$ E! Z' X5 r4 W* srem这个函数可以换为mod,容易知道一些!
* r. E$ s1 x, Q& Dmatlab中的rem()和mod()函数matlab的rem()和mod()函数: G7 P+ s6 V  \- v7 f
rem(x,y) ...

1 ?* f) \0 n& L6 e( N讲的很细致,坛主能不能推荐一本matlab程序实现的书?侧重实例的,谢谢
作者: wy617958197    时间: 2014-9-2 13:07
. h; F! D' V2 b
多谢分享资料!




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