Neuling sucht richtigen Zufallsgenerator



  • Hi,

    bin noch neu im Forum, hoffe das is das richtige Forum für das Thema.
    Ich hab Grund kenntnisse in C++ aber halt noch keine Erfahrung drum weiß ich
    nicht so richtig wie ich mein Problem am besten löse. Vielleicht kann mir einer
    helfen 😕

    Ich will sowas wie ein Gehirntrainer machen. Es sollen nach einander
    Zufallszahlen angezeigt werden erst 3 stellig dann 4 stellig dan 5,6,7,8.
    Der Spieler muss sie richtig wiedergeben. Hab schon n bischen mit rand()
    rumgedölmert aber wenn ich über ne 4 stellige Zahl komme sind oft gleiche
    stellen drin z.B. 000. Diese sind ja sehr einfach zu merken...
    Zudem weiß ich nicht ob man am besten n Array nimm oder n String, da man die
    Zahlen ja auch mit den Eingaben vom Spieler vergleichen muss damit man weis ob
    es richtig ist.

    Wäre sehr nett wenn ihr mir da n paar Denkanstöße geben könntet.

    Danke

    MfG He4DcR4Sh



  • Da gibt es einen Artikel zu im Magazin, ganz unten... 🙂

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-172876.html



  • while(...) {
      srand(time(0));
      i = rand();
    }
    


  • guter Tipp schrieb:

    while(...) {
      srand(time(0));
      i = rand();
    }
    

    Und was passiert, wenn mit srand mehrmals der gleiche seed gesetzt wird?
    Richtig, man erhält die gleichen Zufallszahlen, da sie aus dem gleichen seed erzeugt werden.

    Es wäre sinnvoller, std::srand(std::time(NULL)) nur einmal im Programm aufzurufen.



  • Nabend!

    Erstma vielen dank für eure Antworten 🙂

    Der Link oben hilft mir schonmal weiter eine möglichst gut geeignete Zufallszahl
    zu finden.
    Schreibe ich da dann meine Zufallszahlen in Arrays ? Kann man eine
    Schleife bauen die nach und nach die Array Stellen mit Zufallszahl füllt ? 😕

    Danke

    MfG He4DcR4Sh



  • He4DcR4Sh schrieb:

    Schreibe ich da dann meine Zufallszahlen in Arrays ?

    das kannst du machen ^^

    He4DcR4Sh schrieb:

    Kann man eine
    Schleife bauen die nach und nach die Array Stellen mit Zufallszahl füllt ?

    ja kann man

    const int MAX_ELEM = 10;
    int myarr[MAX_ELEM];
    
    for(int i=0; i<MAX_ELEM; ++i) {
        myarr[i] = rand();
    }
    

    oder eleganter

    std::vector<int> myvec;
    for(int i=0; i<10; ++i) {
        myvec.push_back(rand());
    }
    


  • oder noch eleganter:

    std::srand( static_cast< unsigned int >( time( 0 ) ) );
    std::vector< int > foo( 10 );
    for( std::vector< int >::iterator i = foo.begin( ); i != foo.end( ); ++i ) {
    
        *i = std::rand( );
    }
    

    😉

    greetz, Swordfish



  • Da geht aber noch was:

    std::generate (foo.begin (), foo.end (), std::rand);
    

    😃



  • The-Kenny schrieb:

    guter Tipp schrieb:

    while(...) {
      srand(time(0));
      i = rand();
    }
    

    Und was passiert, wenn mit srand mehrmals der gleiche seed gesetzt wird?
    Richtig, man erhält die gleichen Zufallszahlen, da sie aus dem gleichen seed erzeugt werden.

    Es wäre sinnvoller, std::srand(std::time(NULL)) nur einmal im Programm aufzurufen.

    Falsch, -100 Punkte!



  • @.filmor: *Arrrrggrr* Danke, jetzt weiß ich, was ich gesucht habe 😡
    @SP: <°((((>< und troll dich...

    greetz, Swordfish



  • Nabend vielen vielen Dank für die guten Beispiele schaun alle super aus 🙂
    Ich versteh zwar nur das erste von Xantus, die vectoren raff ich noch nich muss
    ich mich ma reinlesen. Mal ne dumme frage ich brauch ma um die 10 Zahlen alle mit
    verschiedener Länge. Die Erste mit 3 Stellen, 2te mit 4, dann mit 5 usw.
    Wie ich das da raus lese sind die dann alle 10 Stellig, oder macht man sich einfach
    10 Zufalls zahlen alle mit 10 Stellen und drückt die dann in die arrays mit weniger
    Stellen?

    Vielen Danke nochma.

    MfG He4DcR4Sh



  • modulo


Anmelden zum Antworten