Ich brauche die Ausgabe der Permutation für Bits der Länge 3 zu sein (die Reihenfolge spielt keine Rolle, wie die ursprüngliche Kombination von 0 und 1 zufällig generiert wird):Wie bekomme ich alle möglichen Permutationen für 0 und 1 Bits in JAVA
[0,0,0]
[0,0,1]
[0,1,0]
[0,1,1]
[ 1,0 0]
,[1,0,1]
[1,1,0]
[1,1,1]
Ich habe getan, aber es scheint, dass es sind Duplikate und einige mögliche Permutationen werden nicht angezeigt, ich bin mir nicht sicher, warum. Dies ist mein Code:
'
ArrayList<Item> itemsAvailable = new ArrayList<Item>();
ArrayList<Integer>bits = new ArrayList<Integer>();
ArrayList<ArrayList<Integer>> tried = new ArrayList<ArrayList<Integer>>();
itemsAvailable.add(new Item(5,4));
itemsAvailable.add(new Item(12,10));
itemsAvailable.add(new Item(8,5));
System.out.println("itemsAvailable: " + itemsAvailable);
Random r = new Random();
//permutations
for(int i = 0; i < Math.pow(2,itemsAvailable.size()); i++){
//Generate random bits
for(int j = 0; j < itemsAvailable.size(); j++){
int x = 0;
if (r.nextBoolean())
x = 1;
bits.add(x);
}
System.out.println("Added to bits #" + (i+1) + ": " + bits);
bits = new ArrayList<Integer>();
}
'
Die Ausgabe, die ich erhalten ist:
Added to Bits # 1: [0, 0, 1]
Zu Bits # 2 hinzugefügt: [1, 1, 0] - Duplikat
Hinzugefügt zu Bits # 3: [1, 0, 1]
an Bits addiert # 4: [0, 0, 1]
Hinzu Bits # 5: [0, 0, 0] - dupicate
Hinzu Bits # 6: [1, 1, 0] - dupicate
hinzugefügt Bits # 7: [1, 1, 1]
hinzugefügt Bits # 8: [0, 0, 0] -
Deshalb dupicate wie kann ich erhalten 8 verschiedene Permutationen wie die Bits zufällig generiert werden? Bitte helfen Sie.
Vielen Dank.
Eigentlich habe ich die Frage falsch gelesen. Es gibt keine Permutationen. Bitte formuliere den Titel neu. – Dici