matlab计算能满足多元一次方程整数解 5
a+3b+2c+4d+2e+5f=30的整数解 展开
我用笨办法算了一下,如果 a,b,c,d,e,f 都是0~20的非负整数,整数解还不少,有2799组(正整数解是141组),程序如下:
RLT=zeros(0,6); %用于存放计算结果
for a=0:20
for b=0:20
for c=0:20
for d=0:20
for e=0:20
for f=0:20
if 30==a+3*b+2*c+4*d+2*e+5*f
RLT = [RLT; a b c d e f]; %将整数解一行一行存放
end
end
end
end
end
end
end
部分解见下图:
程序应该还可以在速度方面进行优化,可考虑采用while循环,让 c 在 0~20 并且在小于30-a-3b的范围内变化, 让 d 在0~20并且在小于30-a-3b-2c内变化, e 、 f 依次类推,这样理论上可减少内层循环的次数,减少程序运行的时间。
%很高兴为您解答,w231818为您解答有关matlab的问题,以期共同提高
%如果本题有什么不明白可以追问,如果满意记得采纳
%如果有其他问题请采纳本题后另发点击向我求助,答题不易,请予以肯定,多多支持,谢谢!
广告 您可能关注的内容 |