Znajdowanie permutacji (n!/2)

0

Witam,

Napisałem algorytm, który znajduje wszystkie permutacje n-elementowego zbioru, ale nie działa on do końca tak jak bym chciał... Otóż permutacja 1,2,3 jest u mnie równa permutacji 3,2,1, a więc łączna liczba permutacji to n!/2. Jak mogę go usprawnić?

void generatePermutations(vector<int> v, int n, int k) {

	static int level = -1;
	level++;
	v[k] = level;

	if (level == n-1) {
		
		// Skonczone

	}
	else
		for (int i=0; i<n; i++) {

			if (v[i] == 0)
				generatePermutations(v, n, i);

		}
	
	level = level-1;
	v[k] = 0;

}
0

http://rosettacode.org/wiki/Permutations#C - nie musisz dziękować.

0

A przypadkiem 2,3,1 nie jest tym samym co 1,2,3 i tym samym co 3,1,2 ?

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