Zufallszahlen ohne Wiederholung



  • Ich bin noch sehr unerfahren was programmierung angeht und soll für die Uni Mastermind in C++ programmiern, dabei soll der Code aus Zufallszahlen ohne Wiederholungen bestehen, die generierung habe ich wie folgt gelöst :

    void zahl ()
    {
    int code[5];
    for (int i=0;i<5;i++)
    {
    code[i]= (rand() % 😎 +1;
    cout << code[i] << setw(3) ;
    }
    return;
    }

    nur die Zahlen wiederholen sich, wie kann ich das Einschränken , das sich die Zahlen nicht wiederholen ?



  • #include <iostream>
    #include <iomanip>
    
    using namespace std;
    
    void zahl()
    {
    	int code[5];
    
    	for (int i=0 ; i < 5; i++)
    	{
    		code[i]= (rand() % 8) +1;
    		cout << code[i] << setw(3) ;
    	}
    
    	//return; // Überflüssig
    } 
    
    int main()
    {
    	srand(static_cast<unsigned int>(time(NULL)));
    
    	zahl();
    
    	return 0;
    }
    

    Sollte das dein Problem nicht lösen, dann musst du genauer beschreiben, was du meinst.



  • Cranos schrieb:

    Ich bin noch sehr unerfahren was programmierung angeht und soll für die Uni Mastermind in C++ programmiern,...

    nur die Zahlen wiederholen sich, wie kann ich das Einschränken , das sich die Zahlen nicht wiederholen ?

    das ist wohl die aufgabe die du lösen sollst. überleg mal wie du das mit einem würfel unds einem zettel machst.



  • Wenn es dir darum geht das im Code keine Ziffern doppelt vorkommt, also z.B. 11134 nicht sein darf, dann hab ich für dich folgende Idee:

    1. Erstell dir ein Array, das die gültigen Ziffern enthält
    2. Mische das Array zufällig
    3. Nimm die ersten n Elemente aus diesem Array
    4. Fertig


Anmelden zum Antworten