Mischen String

Ich muss ein Programm schreiben, das stört ein 4-Buchstaben-string eingegeben durch den Benutzer. (Beispiel TESTEN können, werden verschlüsselt, wie tset, ttse etc...) Naja ich habe ein Programm, dass funktioniert, aber es beschränkt sich auf eine 4-element-char-array, und ich möchte wissen, ob es irgendeinen Weg gibt, zu machen, so dass ich nicht haben, um die Größe vorgegeben.

//4 letter word scrambler (ex. test tets tset...)
int counter=0;
int main(int argc, char* argv[])
{
    char str[4];
    cout << "Please enter a  word: "; //ask for input
    cin >> str;
    counter+=1; //set counter to 1 
    cout << counter << " " << str << endl;
    for (int i=0;i<3;i++){//iteration through one full loop in array
        swap(str[i], str[i+1]); //swap two elements as iterates through array
        counter+=1;//add 1 to counter each time
        cout <<counter<<" "<< str << endl;
    }
    for (int i=0;i<3;i++){
        swap(str[i], str[i+1]);
        counter+=1;
        cout << counter<< " " << str << endl;
    }
    for (int i=0;i<3;i++){
            swap(str[i], str[i+1]);
        counter+=1;
        cout << counter << " " << str << endl;
    }
    for (int i=0;i<2;i++){
            swap(str[i], str[i+1]);
        counter+=1;
        cout << counter << " " << str << endl;
    }

    system("PAUSE");
    return 0;
}
Einfach eine einfache Fisher-Yates shuffle. Ich glaube nicht, verwenden Sie C++ -, so könnte es etwas genial bereits, dies zu tun-aber der wiki Artikel ist ziemlich gut und es ist auch verdammt-simple-Algorithmus. Beachten Sie, wie der shuffle läuft durch die ganzen - array (das ist, was macht es erweiterbar auf jede Größe-Sammlung). Sie können mit dieser implementation auf "output" (Sie brauchen nicht zu speichern, die gemischt array-Ergebnisse!).
suchen Sie alle die permutation oder willst du es zufällig?
Ihre erste Lösung ergibt genau 12 Lösungen, was auch immer passiert, so dass ich denke, es ist falsch, in vielen Fällen. Wollen Sie unterscheiden, unterschiedlich positioniert-gleich-Zeichen oder nicht? Also, Sie wollen die Permutationen mit oder ohne Wiederholungen? (resultcount für TTTT ist 4! oder 1 ?)

InformationsquelleAutor Wil Prim | 2011-12-03

Schreibe einen Kommentar