witam,
czy ma ktos moze gotowa implementacje algorytmu wariacji bez powtorzen do tablicy jedno wymiarowej? potrzebuje wypelniac tablice 0 i 1 na wszystkie mozliwe sposoby.
pozdrawiam,
/wk
witam,
czy ma ktos moze gotowa implementacje algorytmu wariacji bez powtorzen do tablicy jedno wymiarowej? potrzebuje wypelniac tablice 0 i 1 na wszystkie mozliwe sposoby.
pozdrawiam,
/wk
Załóżmy, że tablica ma długość k, zrób pętlę po liczbach z przedziału [0,2k-1] i zapisz każdą liczbę w systemie dwójkowym.
Taki mały przykład:
public class Permutations {
public static <T> void perm(T[] a, int n) {
if (n == 1) {
System.out.println(Arrays.toString(a));
return;
}
for (int i = 0; i < n; i++) {
swap(a, i, n - 1);
perm(a, n - 1);
swap(a, i, n - 1);
}
}
private static <T> void swap(T[] a, int i, int j) {
T tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
public class Program {
public static void main(String[] args) {
int N = 3;
Integer[] array = new Integer[] {0, 1, 2};
Permutations.perm(array, N);
}
}
Jeśli chcesz mieć tylko 0 i 1, to musisz udoskonalić ten kod, bo będzie generował kilka takich samych kombinacji.