000
04.06.2004, 16:53 Uhr
~matthias
Gast
|
Hallo, ich habe ein Programm geschrieben, dass mir Permutationen von einer Zahlenfolge ausgibt, welche ich selbst eingeben muss! Probierts bitte mal aus, es dürfte kein Fheler drin sein! Wenn ihr "a", "b", "c", "d" und "e" eingebt, werden diese in die zu permutierenden Vectoren umgewandelt! Folgender Quelltext ist nur ein Ausschnitt, das eigentliche Programm ist viel komplexter!
C++: |
#include <iostream> #include <vector> #include <algorithm>
using namespace std;
int main() { int y=0; char b[5];
do { cout<<"Buchstabe: "; cin>>b[y]; y++; } while(y<5);
vector<int> array; vector<int>::iterator it; for(int a=0;a<5;a++) { if(b[a]=='a')array.push_back(9); if(b[a]=='b')array.push_back(3); if(b[a]=='c')array.push_back(14); if(b[a]=='d')array.push_back(1); if(b[a]=='e')array.push_back(16); }
sort(array.begin(), array.end()); for(it = array.begin(); it != array.end(); ++it) { cout << *it; } cout<<"\n"; while(next_permutation( array.begin(), array.end() )) { for(it = array.begin(); it != array.end(); ++it) { cout << *it; } cout<<"\n"; }
return 0; }
|
Jetzt habe ich also die Permutationen aus den Vectoren begildet! Und jetzt folgt mein Problem: Ich muss Bedingungen für die Permutationen stellen!! Beispiel: "Gebe die Permutation nur aus, wenn die Nr. "3" und die Nr. "14" nicht nebeneinander stehen" - die Bedingung muss ich in Quelltext umwandeln! Aber geht das überhaupt mit den Vectoren??? Wenn ja, wie?? Bitte helft mir, das ich echt wichtig!
Gruß Matthias |