求解4000*x1+3000*x2+2000*x3=30000的自然数解程序
for x1=1:13for x2=1:13
x3=(30000-4000*x1-3000*x2)/2000;
m=13-x3-x1-x2;
if sign(x3)>=0 & rem(x3,1)==0 & sign(m)==0
disp()
end
end
end rem这个函数可以换为mod,容易知道一些!
matlab中的rem()和mod()函数matlab的rem()和mod()函数
rem(x,y):求整除x/y的余数
mod(x,y):求模
rem(x,y)=x-y.*fix(x./y); (fix()向0取整)
mod(x,y)=x-y.*floor(x./y); (floor()向左取整)
如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样)
如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什么结果就选择用什么函数)
当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟被除数(y)一样,用mod()函数
例如:
rem(3,2)=1;mod(3,2)=1;
rem(-3,-2)=-1;mod(-3,-2)=-1;
rem(3,-2)=1;mod(3,-2)=-1;
rem(-3,2)=-1;mod(-3,2)=1;
mod(3,2)=rem(3,2)=1;
mod(3,-2)=rem(3,-2)-2=1-2=-1;
mod(-3,2)=rem(-3,2)+2=-1+2=1;
madio 发表于 2012-10-30 06:38 static/image/common/back.gif
rem这个函数可以换为mod,容易知道一些!
matlab中的rem()和mod()函数matlab的rem()和mod()函数
rem(x,y) ...
讲的很细致,坛主能不能推荐一本matlab程序实现的书?侧重实例的,谢谢
多谢分享资料!
页:
[1]