数学建模社区-数学中国

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

作者: mudan    时间: 2012-10-29 16:54
标题: 求解4000*x1+3000*x2+2000*x3=30000的自然数解程序
  1. for x1=1:135 E5 ~; \/ J1 Y. x$ d! m3 y0 g1 K
  2.     for x2=1:13
    9 V9 A& J4 A2 `$ s5 K1 a
  3.         x3=(30000-4000*x1-3000*x2)/2000;8 C6 d: V, }5 G4 v! U
  4.         m=13-x3-x1-x2;7 N6 S5 ]) H' L" \8 j& O3 T
  5.         if sign(x3)>=0 &  rem(x3,1)==0 & sign(m)==0  
    : ~+ ]* I# y2 T& J2 [2 i! Q: O
  6.             disp([x1,x2,x3])
    " d: U7 J! E$ I  T
  7.         end5 i2 L" c5 c5 ?6 i
  8.     end% b" A. J. W! T3 q! M! a4 k
  9. end
复制代码

作者: madio    时间: 2012-10-30 06:38
rem这个函数可以换为mod,容易知道一些!
% R8 B* v) _' T4 t* vmatlab中的rem()和mod()函数matlab的rem()和mod()函数
3 e* B3 V* h1 D6 arem(x,y):求整除x/y的余数8 T+ n4 g8 m' z% j

% u% D+ h! ^) ]' Q! w8 o" Ymod(x,y):求模/ {! p: {9 m& |2 l$ D0 S

8 [* F, _; e. m% s
$ Y$ P2 c, J1 t, m! f% ]' ~( n7 v4 ~# U: S9 M1 v" p
rem(x,y)=x-y.*fix(x./y);  (fix()向0取整)7 c& J7 ^9 D% b9 G

0 g- Q' E  Y( U" [3 P6 qmod(x,y)=x-y.*floor(x./y); (floor()向左取整); |6 X1 i3 {( w7 U  e5 y. i+ m, H

8 R3 d; c# u3 r4 x# X如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样)
4 A9 }& N! v( e- `6 K; Y
( R; Y) V( q; S- v+ y如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什么结果就选择用什么函数)
! X, J; L, {- s/ y* [7 P) T# @) {& u; V& Q
当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟被除数(y)一样,用mod()函数6 ?: f/ U; z3 `) Y. B$ o% h# x
. `* h3 K- c6 f: o8 U
例如:  p8 y$ _' ~$ m; x$ Y8 {& I" C: X" D

: \5 I9 H# M- z/ E& Nrem(3,2)=1;mod(3,2)=1;! n! R3 U+ D' u

# ^3 g6 m) g7 f5 J* X1 A7 zrem(-3,-2)=-1;mod(-3,-2)=-1;8 ^) e" L8 m" n9 e, T2 f, M
3 m7 V! d% d# ~* U
rem(3,-2)=1;mod(3,-2)=-1;5 J9 b1 b9 _1 F: Z+ Y. r: n
7 f2 G1 f3 s9 T" s  E! M
rem(-3,2)=-1;mod(-3,2)=1;8 \+ q# E. [$ y$ e# T: R2 L5 U

+ @6 C$ a8 h+ |/ t$ [   ]( C4 f! Q! y" z9 j
- _1 U, V, _- Y: f
mod(3,2)=rem(3,2)=1;" T' H2 G- P4 G

0 j0 M  {" C$ _- fmod(3,-2)=rem(3,-2)-2=1-2=-1;4 J: {* _" M! H/ h1 x" ?

) j& J* O9 z3 ]6 jmod(-3,2)=rem(-3,2)+2=-1+2=1;
# J+ `. t# e6 J1 F
作者: mudan    时间: 2012-10-30 17:43
madio 发表于 2012-10-30 06:38
6 K5 b8 M# x* v" y& Z2 d5 d+ drem这个函数可以换为mod,容易知道一些!2 q# D8 g; [/ ?
matlab中的rem()和mod()函数matlab的rem()和mod()函数( R3 Y2 I7 n' Y9 l( w+ Q
rem(x,y) ...
+ S* ~7 O& a7 B* |# O0 H1 ^. x) U1 d
讲的很细致,坛主能不能推荐一本matlab程序实现的书?侧重实例的,谢谢
作者: wy617958197    时间: 2014-9-2 13:07
& T3 i( y# n9 D" Z2 U
多谢分享资料!




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