[未答复] 如何把边长为l改为长方形

[复制链接]
inessential 发表于 2021-11-24 17:07:08
在边长为l的正方形中尽可能放入多的长a,宽b的小箱子,只考虑二维平面。
clc;
close all;
clear;
a=input('箱子长度a=');
b=input('箱子宽度b=');
l=input('底板边长l=');

i=1;  
[f(i),m(i),n(i)]=msy(a,b,l);
c=min(a*m(i),b*n(i));
while (l-2*c)>=a     
i=i+1;      
[f(i),m(i),n(i)]=msy(a,b,l-2*c);     
c=c+min(a*m(i),b*n(i));
end
m,n  

sum1 =sum(m.*n)  
sum=4*sum1(1,1);

//msy.m
function [fmax,x1,x2]=msy(a,b,l)
m1=fix(l/a);n1=fix(l/b);fmax=0;
for i=0:m1     
for j=0:n1         
f=a*i+b*j;         
if f>fmax&&f<=l            
    fmax=f;            
    x1=i;            
    x2=j;         
end
end
end

1 条回复


inessential 发表于 2021-11-24 17:08:30
而且在//mey.c中显示出运算符错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表