Hi!
folgendes Problem: Es geht um einen Algo der aus der Menge M mit n Elementen alle möglichen Teilmengen generiert.
Um den Algo an sich soll es nicht gehen, es geht darum, die erhaltenen Werte sinnvoll in Teilmengen abzuspeichern.
Jeder Treffer für ein jeweiliges X muss in ein eigenes Array bzw. Set. Also die Mengen separieren sich nach jedem Durchlauf der äußeren for-Schleife.
Schön wäre z.B eine ArrayList, die verschiedene HashSets abspeichert. Aber wie drücke ich aus: füge dem HashSet an dem ArrayListIndex[x] den Wert sum zu..da ich eine neues HashSet ja erst generieren muss, wenn if (binarStelle == 1) für ein neues x zutrifft.. bin ziemlich verzweifelt hier mein Code, der nicht klappt:
folgendes Problem: Es geht um einen Algo der aus der Menge M mit n Elementen alle möglichen Teilmengen generiert.
Um den Algo an sich soll es nicht gehen, es geht darum, die erhaltenen Werte sinnvoll in Teilmengen abzuspeichern.
Jeder Treffer für ein jeweiliges X muss in ein eigenes Array bzw. Set. Also die Mengen separieren sich nach jedem Durchlauf der äußeren for-Schleife.
Schön wäre z.B eine ArrayList, die verschiedene HashSets abspeichert. Aber wie drücke ich aus: füge dem HashSet an dem ArrayListIndex[x] den Wert sum zu..da ich eine neues HashSet ja erst generieren muss, wenn if (binarStelle == 1) für ein neues x zutrifft.. bin ziemlich verzweifelt hier mein Code, der nicht klappt:
Java:
public static ArrayList<HashSet> teilmengenGenerieren1 (double [] sum) {
ArrayList<HashSet> teilmengen = new ArrayList<HashSet>();
for (int x = 0; x < (1L << sum.length); x++) {
for (int i = 0; i < sum.length; i++) {
long binaerStelle = (x >> i) & 1; //gibt Binärzahl von x an der Stelle i
if (binaerStelle == 1) {
// adde sum[i] zur Menge an ArrayIndex X;
teilmengen.add(x, new HashSet());
teilmengen.get(x).add(sum[i]);
}
}
}
return teilmengen;
}