Znajdowanie permutacji (n!/2)

Znajdowanie permutacji (n!/2)
BE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 54
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ć?

Kopiuj
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;

}
hauleth
  • Rejestracja: dni
  • Ostatnio: dni
0

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

robcio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Opole
  • Postów: 533
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.