Zufall, mit Tipp



  • Hallo liebe Leute,

    ich hab ein Programm geschrieben wo man einen Tipp eingeben kann um eine zufällige Zahl zu erraten.

    #include <iostream>
    #include <stdlib.h>
    #include <windows.h>
    #include <time.h>
     using namespace std;
    
     int main (){
    
    	int zufall;
    	int tipp;
    
    	 srand( (unsigned)time( NULL ) );
    	 zufall = rand() % 1000 + 1;
    
    	 do {
    
    	 cout << "Geben Sie hier ihren Tipp ein: ";
    	 cin >> tipp;
    
    	 if (tipp == zufall){
    
    	 	cout << "Glueckwunsch Sie haben die richtige Zahl erraten!" << endl;
    	 }else {
    
    	 	cout << "Leider haben Sie verloren. " << endl;
    
    	 }
    }while (tipp != zufall );
    
    cin.get(); 
    return 0;
     }
    

    Meine Fragen dazu sind:

    srand( (unsigned)time( NULL ) );
    

    ich hab die aus dem internet kopiert und eingefügt damit jedes mal eine neue zufällige Zahl erscheint, doch ich versteh das nicht mit dem unsigned und time (NULL) bitte um erklärung.

    2. Ich möchte das eine andere zufällige Zahl erscheint während der Schleife doch ich wusste ncihit wie ich das hinbekommen könnte bitte um Hilfe.
    Mit dem

    srand( (unsigned)time( NULL ) );
    

    kommt immer nur eine neue zufällige Zahl raus wenn man das Programm neustartet.



  • Sgaf schrieb:

    srand( (unsigned)time( NULL ) );
    

    ich hab die aus dem internet kopiert und eingefügt damit jedes mal eine neue zufällige Zahl erscheint, doch ich versteh das nicht mit dem unsigned und time (NULL) bitte um erklärung.

    rand() ist ein Pseudozufallszahlengenerator, dh es ist kein echter Zufall, sondern ein Algorithmus, der mit jedem Aufruf das nächste Glied einer Zahlenfolge berechnet, die zufällig erscheint. Mit srand kann man den Zufallszahlengenerator neu starten, also eine neue Folge beginnen lassen, und dabei einen Startwert ("seed") übergeben. Der Startwert selbst wird nicht ausgegeben, aber der Rest der Folge wird davon berechnet.

    Was heißt das für ein Programm? Du könntest immer wieder die gleiche Zufallszahlenfolge haben wollen, dann rufst du srand immer mit dem gleichen Startwert auf. Die meisten wollen aber immer wieder eine andere Zufallszahlenfolge, also initialisieren sie den Generator mit einem Einfluss von außen, meistens mit der aktuellen Systemzeit. Solange das Programm nicht zweimal mit derselben Zeit gestartet wird (kann passieren, weil time() sich nur einmal pro Sekunde ändert), hat man dann jedesmal anderen Zufall.

    2. Ich möchte das eine andere zufällige Zahl erscheint während der Schleife doch ich wusste ncihit wie ich das hinbekommen könnte bitte um Hilfe.
    Mit dem

    srand( (unsigned)time( NULL ) );
    

    kommt immer nur eine neue zufällige Zahl raus wenn man das Programm neustartet.

    Das srand nur einmal am Anfang machen, nicht immer wieder.



  • Day 646: Still trying to guess the number.


Anmelden zum Antworten