装箱java代码
对于装箱问题,使用不同的算法可能很容易找到箱子的数量。因此,应该有一种方法来确定重量是否适合特定的箱子 下面的函数使用First Fit算法返回箱子数量。如何返回每个箱子的信息(哪个箱子包含哪些重量)? 提前感谢:) } //作用装箱java代码,java,arrays,algorithm,optimization,bin-packing,Java,Arrays,Algorithm,Optimization,Bin Packing,对于装箱问题,使用不同的算法可能很容易找到箱子的数量。因此,应该有一种方法来确定重量是否适合特定的箱子 下面的函数使用First Fit算法返回箱子数量。如何返回每个箱子的信息(哪个箱子包含哪些重量)? 提前感谢:) } //作用 public String firstFit(int weight[], int cap ){ int count=0,i,j; int len=weight.length,space; Bin [] bin= new Bin[len];
public String firstFit(int weight[], int cap ){
int count=0,i,j;
int len=weight.length,space;
Bin [] bin= new Bin[len];
for (i=0;i<len;i++) {
bin[i].setSpace(cap);
for (j=0;j<len;j++) {
space=bin[j].getSpace();
if (space >= weight[i]) {
bin[j].addAttribute(j, weight[i]);
bin[j].setSpace(space-weight[i]);
count=j+1;
}
}
}
StringBuilder rs = new StringBuilder();
rs.append(" Number of bin needed : "+ count );
for(i=0;i<count;i++) {
rs.append("Bin ["+i+1+"]'s weights : ");
for(j=0;j<len;j++) {
rs.append(bin[i].getAttribute(j)+" |");
}
}
String ms=rs.toString();
return ms;
}
public String firstFit(int-weight[],int-cap){
int计数=0,i,j;
int len=重量、长度、空间;
Bin[]Bin=新的Bin[len];
对于(i=0;i到目前为止您尝试了什么?我尝试了一个具有两个属性(如剩余容量(int)和权重(int[])的bin类。然后我创建了一个bin类数组并尝试使用它。但它到目前为止不起作用。{}好的,你必须显示不起作用的代码,否则我们无法修复。我已经添加了代码。你能检查问题部分吗。为什么你有两个firstFit()
方法?返回哪些箱子包含哪些重量是什么意思?
public class Bin {
private int space;
private int [] attribute;
public Bin () {
}
public int getSpace() {
return space;
}
public void setSpace(int space) {
this.space = space;
}
public int getAttribute(int a) {
return attribute[a];
}
public void setAttribute(int[] attribute) {
this.attribute = attribute;
}
public void addAttribute(int a, int b) {
this.attribute[a]=b;
}
public String firstFit(int weight[], int cap ){
int count=0,i,j;
int len=weight.length,space;
Bin [] bin= new Bin[len];
for (i=0;i<len;i++) {
bin[i].setSpace(cap);
for (j=0;j<len;j++) {
space=bin[j].getSpace();
if (space >= weight[i]) {
bin[j].addAttribute(j, weight[i]);
bin[j].setSpace(space-weight[i]);
count=j+1;
}
}
}
StringBuilder rs = new StringBuilder();
rs.append(" Number of bin needed : "+ count );
for(i=0;i<count;i++) {
rs.append("Bin ["+i+1+"]'s weights : ");
for(j=0;j<len;j++) {
rs.append(bin[i].getAttribute(j)+" |");
}
}
String ms=rs.toString();
return ms;
}