Permutationen in Array
-
Guten Tag ihr alle,
code schon seit Stunden an einem Programm dass Städte per TSP ordnen soll (vollständige Suche). Da die einzige mir (inzwischen
) bekannte Möglichkeit mit next_permutation funktioniert probiere ich folgendes.Ich möchte die Wegstrecke von 0 - n berechnen, dann permutieren (allerdings nur von 1 - (n-1)), da Anfang und Ende fest sind) und die neue Strecke berechnen.
Was haltet ihr hiervon?
Permutation() { vector<int> m1(a, a+n); // vector<int> prev_m1((size_t)10); // <- brauch ich die Zeile? copy(m1.begin(), m1.end(), prev_m1.begin()); next_permutation(next_m1.begin(),next_m1.end(),less<int>()); }Ziel soll sein, ein Array zu übergeben und mit der nächsten Permutation zurückzuerhalten. Wer kann mir weiterhelfen? Steh ein wenig auf dem Schlauch und bin zudem noch recht grün hinter den Ohren was C/C++ angeht...
Vielen Dank im Voraus!
Flo
-
So ganz verstehe ich deine 3 verschiedenen Variablen nicht (ml, prev_ml und next_ml), aber wenn du nur von 1 bis (n-1) permutieren willst, dann ...
next_permutation(ml.begin()+1, ml.end()-1);
-
Das ist schon mal ne nette Idee ^^ Danke.
http://wwwasd.web.cern.ch/wwwasd/lhc++/RW/stdlibcr/nex_1756.htm
Daher hab ich den code, bzw. das Fragment.
Der Rest meines Codes ist schon schwierig genug (für mich) gewesen, da wollte ich nich unbedingt noch ultraindividuell bei der Permutation werden...