数学建模社区-数学中国

标题: 求解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
    7 Z0 Y0 R$ {3 J! h- C
  2.     for x2=1:13
    ( G8 @1 |& h7 R) L* i- i
  3.         x3=(30000-4000*x1-3000*x2)/2000;
    ) x7 k3 N+ d  F9 c; j5 A
  4.         m=13-x3-x1-x2;
    . D9 G( g5 b6 a3 F; ]
  5.         if sign(x3)>=0 &  rem(x3,1)==0 & sign(m)==0  
    / u4 t: i- k0 u6 o9 j
  6.             disp([x1,x2,x3])
    ( p5 l) D; Z' N$ _  G
  7.         end0 X3 e5 Q. p9 p- k; o; {
  8.     end# N+ j# n' n2 u  F; C# p
  9. end
复制代码

作者: madio    时间: 2012-10-30 06:38
rem这个函数可以换为mod,容易知道一些!" o3 C6 z' ^& j3 C! D2 }
matlab中的rem()和mod()函数matlab的rem()和mod()函数
0 N. x. V: R$ @' q8 Crem(x,y):求整除x/y的余数9 @* ^* L5 {3 R2 L
7 `" s/ `1 x& o9 o% j
mod(x,y):求模7 N8 q5 E( P" H+ f& n+ v+ X( W. x' J
  {  }8 S. D' |
$ w) n3 Z. B0 E/ X" R4 _. I/ {
5 t! {. x# z9 S$ Z8 z9 T
rem(x,y)=x-y.*fix(x./y);  (fix()向0取整): u5 y! J/ e2 o9 M1 M

8 b! v* ]  ~4 t( g3 }7 o: x1 imod(x,y)=x-y.*floor(x./y); (floor()向左取整)
' b8 z" A( H  V( f# X4 I+ H
. w* C8 z( }. @! M% e* x如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样)8 D/ p0 `6 S: o7 N( A6 n( b, C
. t% ]  y6 c* w2 S
如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什么结果就选择用什么函数)
, d: E1 J$ [9 o( \
4 {0 I6 l2 C' m) O! p! d* E4 w9 |, l3 }8 {当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟被除数(y)一样,用mod()函数
# Q$ ^! L! C6 `+ d& u3 l% Q( C7 p( a, B: K3 ^
例如:
% ^4 K& W+ o. i9 s& z. \! d( R) [' z1 j8 r) f
rem(3,2)=1;mod(3,2)=1;
, C& |9 I/ o* X' e. e. ]! o' M( O6 O. j' y. x, e$ I* J- C3 q' n
rem(-3,-2)=-1;mod(-3,-2)=-1;
2 R% E2 h( O1 W% _" G2 i
$ Q* c1 [- j; Vrem(3,-2)=1;mod(3,-2)=-1;
4 Z( l* o" h! p+ }4 P
9 O, b  u4 V: o8 w, P2 J8 Rrem(-3,2)=-1;mod(-3,2)=1;
/ r/ r8 T9 n2 ^- [5 M9 ?9 N
4 A) N# R: Z, f0 O  v4 S
) D% H9 @. x/ w2 @4 @, ?
2 S5 y6 d2 ~% Hmod(3,2)=rem(3,2)=1;* B2 z; z9 j' E# T
) }7 m" K. B2 s" o7 k
mod(3,-2)=rem(3,-2)-2=1-2=-1;
/ j4 q8 d& H! t8 h! a. d  B
( t6 |+ c+ h, z- M3 Xmod(-3,2)=rem(-3,2)+2=-1+2=1;
* ?) S0 n0 V, k6 N* i
作者: mudan    时间: 2012-10-30 17:43
madio 发表于 2012-10-30 06:38 5 r7 _9 M( y6 W9 n  M
rem这个函数可以换为mod,容易知道一些!, K# b- K- ~5 o) D
matlab中的rem()和mod()函数matlab的rem()和mod()函数0 ?! v; r6 F. r8 h' V
rem(x,y) ...

) ~3 E* P# y4 l, O讲的很细致,坛主能不能推荐一本matlab程序实现的书?侧重实例的,谢谢
作者: wy617958197    时间: 2014-9-2 13:07

! A% g0 M: A0 n& R0 f( P% s多谢分享资料!




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