wariacja bez powtorzen na tablicy

0

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

0

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.

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1