Zufallsreihenfolge (1bis48 generieren. Wie?



  • Hi,
    ich brauche unbedingt nen kleines Prog, welches mir Die Zahlen 1 bis 48 zufällig hintereinanderreiht (anordnet). Hab zwar ne ganz grobe vorstellung wie ich das lösen würde. aber habe leider den syntax von c bzw. c++ nicht mehr soo gut drauf. Könnte hier vielleicht mal einer 10 min Zeit nehmen und mir hier nen kleinen Code schreiben, der das Problem löst?
    Wär echt super.
    Gruß,
    Oli. 🙂



  • //Sample Code: 
    
    //////////////////////////////////////////////////////////////////////
    //
    // Compile options needed: /GX
    //
    // random_shuffle.cpp : Illustrates how to use the random_shuffle
    //                      function.
    //
    // Functions:
    //
    //     random_shuffle : Shuffle the elements in a random order.
    //////////////////////////////////////////////////////////////////////
    
    // disable warning C4786: symbol greater than 255 character,
    // okay to ignore
    #pragma warning(disable: 4786)
    
    #include <iostream>
    #include <algorithm>
    #include <functional>
    #include <vector>
    
    using namespace std ;
    
    void main()
    {
        const int VECTOR_SIZE = 8 ;
    
        // Define a template class vector of int
        typedef vector<int> IntVector ;
    
        //Define an iterator for template class vector of strings
        typedef IntVector::iterator IntVectorIt ;
    
        IntVector Numbers(VECTOR_SIZE) ;
    
        IntVectorIt start, end, it ;
    
        // Initialize vector Numbers
        Numbers[0] = 4 ;
        Numbers[1] = 10;
        Numbers[2] = 70 ;
        Numbers[3] = 30 ;
        Numbers[4] = 10;
        Numbers[5] = 69 ;
        Numbers[6] = 96 ;
        Numbers[7] = 100;
    
        start = Numbers.begin() ;   // location of first
                                    // element of Numbers
    
        end = Numbers.end() ;       // one past the location
                                    // last element of Numbers
    
        cout << "Before calling random_shuffle\n" << endl ;
    
        // print content of Numbers
        cout << "Numbers { " ;
        for(it = start; it != end; it++)
            cout << *it << " " ;
        cout << " }\n" << endl ;
    
        // shuffle the elements in a random order
        random_shuffle(start, end) ;
    
        cout << "After calling random_shuffle\n" << endl ;
    
        cout << "Numbers { " ;
        for(it = start; it != end; it++)
            cout << *it << " " ;
        cout << " }\n" << endl ;
    }
    
    /*Program Output is:
    
    Before calling random_shuffle
    
    Numbers { 4 10 70 30 10 69 96 100  }
    
    After calling random_shuffle
    
    Numbers { 10 30 4 70 96 100 69 10  }*/
    

    Aus der Anleitung von Visual c++ 😉 da hätte das 5 Minuten suchen auch getan, tztztz

    Gruß eXitus

    *edit: zum 4-ten mal jetzt, habs einfach editiert, obwohl Jester schon geschrieben hat,... :edit*



  • OliverK schrieb:

    Könnte hier vielleicht mal einer 10 min Zeit nehmen und mir hier nen kleinen Code schreiben, der das Problem löst?

    Das können hier zwar die meisten, aber ich denke es wird keiner tun.
    Wenn Du irgendwo hängst und nicht weiterkommst, dann poste Deinen aktuellen Stand unf frage gezielt nach. Dann kriegst Du auch Hilfe.

    Ich vermute Du willst nicht einfach nur Zufallszahlen von 1 bis 48, sondern Du willst eine zufällige Anordnung dieser Zahlen, also jede genau einmal.
    Vielleicht dazu mal zwei kleine Tipps: leg ein Array/std::vector an mit den Zahlen von 1 bis 48 und benutze dann std::random_shuffle.

    Viel Erfolg!
    Jester


Anmelden zum Antworten