Hallo!
Ich bin dabei, einen einfachen Backtracking-Algorithmus zu programmieren. Hab das Programm auch schon relativ weit, aber irgendwo steckt ein Fehler drin.
Hoffe auf schnelle Hilfe ^^
Das ist die MainClass
und jetzt noch die Muenze Klasse:
Ich bin dabei, einen einfachen Backtracking-Algorithmus zu programmieren. Hab das Programm auch schon relativ weit, aber irgendwo steckt ein Fehler drin.
Hoffe auf schnelle Hilfe ^^
Java:
import java.util.ArrayList;
public class MainClass {
public static ArrayList<Muenze> MuenzeList = new ArrayList<Muenze>();
public static ArrayList<MainClass> Geld = new ArrayList<MainClass>();
public static void main(String[] args) {
MuenzeList.add (new Muenze (1, 3));
MuenzeList.add(new Muenze (9,5));
MuenzeList.add (new Muenze (1, 6));
MuenzeList.add(new Muenze (3,2));
Backtracking();
}
public static void Backtracking() { //2^n Möglichkeiten
int InhaltSack = 0;
int kapazitaetSack;
int GeldSack = 0;
kapazitaetSack = 5;
for (int n = 0; n <= MuenzeList.size(); n++) {
for (int i = n; i < MuenzeList.size(); i++) {
if (MuenzeList.get(i).getGewicht() <= (kapazitaetSack - InhaltSack)) {
InhaltSack += MuenzeList.get(i).getGewicht();
GeldSack += MuenzeList.get(i).getWert();
}
}
System.out.print(InhaltSack +", ");
System.out.println(GeldSack);
}
}
}
und jetzt noch die Muenze Klasse:
Java:
public class Muenze {
private int wert;
private int gewicht;
public Muenze() {
super();
}
public Muenze(int value, int size) {
super();
this.wert = value;
this.gewicht = size;
}
public int getWert() {
return wert;
}
public int getGewicht() {
return gewicht;
}
@Override
public String toString() {
return "(" + wert + "," + gewicht + ")";
}
}
Zuletzt bearbeitet: