数学建模社区-数学中国

标题: 求解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/ Z; D4 |) N9 M! h
  2.     for x2=1:13
    6 n; p0 h; V8 e! |& K) k( e4 w! X
  3.         x3=(30000-4000*x1-3000*x2)/2000;% I: q) y1 S7 D; M
  4.         m=13-x3-x1-x2;% _* L) o, F5 L& A, o
  5.         if sign(x3)>=0 &  rem(x3,1)==0 & sign(m)==0  
      z# j- M2 ~$ a9 V0 @- T
  6.             disp([x1,x2,x3])
    ; b( w" r) [. V1 A) \
  7.         end
    0 O/ ^+ Q1 u) z, j6 A
  8.     end6 S% ?9 e- c' h% e6 ^/ b/ Q
  9. end
复制代码

作者: madio    时间: 2012-10-30 06:38
rem这个函数可以换为mod,容易知道一些!$ C4 F6 @5 r( C* Q6 s
matlab中的rem()和mod()函数matlab的rem()和mod()函数: ~, V* I/ ?9 y% S; }* U
rem(x,y):求整除x/y的余数
! Q) N5 r. B, u  s1 m* k
# v8 Y; j8 S9 j% B# y+ t, u! Jmod(x,y):求模+ W# Z2 U; w2 D! T$ s" i

4 p% O" L- t) B( X' j/ I
! @$ g$ a$ u! j; K4 Q6 L9 P+ l4 a& B% y$ m9 B
rem(x,y)=x-y.*fix(x./y);  (fix()向0取整)
# d  o$ Z( H" R
% M5 }5 @2 s0 q, Mmod(x,y)=x-y.*floor(x./y); (floor()向左取整)
1 E" p* m; S6 V8 K
! c9 j( X: _6 u! W$ T如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样)
" m+ r: B- r1 o( C0 {
* Q9 K. T( K; q  ~2 L6 o* ]: J- l如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什么结果就选择用什么函数)/ o7 `, ?5 {% H8 T; Q

" x4 h! K0 B6 h2 q* U当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟被除数(y)一样,用mod()函数( G2 x* @6 c$ z' \* G
7 F4 b5 Y) R) ]
例如:6 S4 C2 e9 c. f0 v5 w& ?5 R+ f% v; r4 G
* \+ o: ]9 D% ]( {+ L7 r
rem(3,2)=1;mod(3,2)=1;
$ l4 S/ e) W) t1 h7 y1 O2 Y
/ W- K! X# Z: Drem(-3,-2)=-1;mod(-3,-2)=-1;  i' T3 v) ]/ E- r$ ~( x/ w$ W
* j. `0 \1 L- P8 U2 n* V; y9 z* ]
rem(3,-2)=1;mod(3,-2)=-1;
2 s9 m" y" }, R# H3 n8 R& X
+ t# R4 |# q, v: G. H0 l* L' Urem(-3,2)=-1;mod(-3,2)=1;5 c( x) H: [5 E- k( m+ o

2 h' h7 H1 c+ o# E8 i: d( m+ Q ! L  j% E% u. l/ P3 f: d+ ?# a6 |

- y' Z& y) ^8 t+ ?) s% M+ L& v! x; Cmod(3,2)=rem(3,2)=1;
: c2 a  @9 a2 h/ J' r
) N! S! b- N2 B) qmod(3,-2)=rem(3,-2)-2=1-2=-1;' r1 m$ ]" Y8 b. H
% \9 S$ N2 C/ x' T5 l
mod(-3,2)=rem(-3,2)+2=-1+2=1;
+ o' ^+ t, \/ H- {
作者: mudan    时间: 2012-10-30 17:43
madio 发表于 2012-10-30 06:38 , j+ e1 i; H  R/ I8 N6 d* \7 V7 k
rem这个函数可以换为mod,容易知道一些!( W: a$ W  V7 y; I# U% S
matlab中的rem()和mod()函数matlab的rem()和mod()函数
5 |$ l1 M5 C* U/ @% E5 irem(x,y) ...

# I6 b. g! \% a1 q讲的很细致,坛主能不能推荐一本matlab程序实现的书?侧重实例的,谢谢
作者: wy617958197    时间: 2014-9-2 13:07
2 b0 Q- q: v# L& e  h, E
多谢分享资料!




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