rand() – einen Zufallszahlengenerator in C ++




генератор случайных чисел

Es ist nicht immer notwendig, die numerische zu füllen dimensional und Zweidimensionale Arrays Seriennummern oder bestimmte Werte. vielleicht, Sie müssen die Elemente des Arrays mit Zufallszahlen zu füllen. In C ++ gibt es spezielle fynktsii rand() und srand(). Sie sind in bibliotechnom Datei cstdlib, so dass ihre Verwendung in dem Programm, Sie benötigen diese Bibliotheksdatei zu verbinden: #einschließen <cstdlib> oder #einschließen <stdlib.h> (für ältere Compiler). Wenn wir verwenden nur die Funktion rand() – Wir erhalten die gleiche “Zufallszahlen” von zapyska zu starten. Geben Sie den folgenden Code und kompilieren das Programm mehrmals. beachten Sie, dass “Zufallszahlen” es wird immer der gleiche sein.

Die Zufallszahl wird auf der Leitung erzeugt, 11 und aufgezeichnet in ich-te Element des Arrays randomDigits. In der nächsten Zeile, fragen Sie ihn, um zu zeigen,. Starten des Programms wird jedes Mal TE Nur Übernachtung und gleiche chisla sehen:

генератор случайных чисел C++, rand c++, srand c++Es stellt sich heraus,, daß die Zahlen erzeugt werden, ist nicht ganz zufällig. zu erreichen, “vorhanden” Zufallszahl beim Neustartx Programme, Sie müssen die Funktion anwenden srand() zu funktionieren rand(). So ist es notwendig, sie als Parameter Funktion zu übergeben Zeit() mit einem Parameter NULL: srand(Zeit(NULL)); (Parameter oder Funktionsargument – das ist es, dass in den Klammern nach dem Funktionsnamen geschrieben. Wenn betrachten wir das Thema Funktionen in C ++, reden über dieses mehr im Detail). Auf diese Weise srand() Er empfängt als Parameter die aktuelle Systemzeit, die für jedes Programm zapuske anders sein wird. Dies wird funktionieren rand() jedes Mal ist es Zufallszahlen zu erzeugen. für den Einsatz Zeit() Sie müssen die Bibliotheksdatei verbinden ctime (time.h für ältere Compiler): #einschließen <ctime> .

versuchen zu laufen. Sie machen, nun unterschiedliche Anzahl an jeder Kompilierung erzeugt. Ich bekomme dieses Ergebnis:

rand c++, srand c++, генератор случайных чисел
Erste Compilation
rand c++, srand c++, генератор случайных чисел
zweite Compilation

Alles sieht gut aus. Nur gibt es einen Punkt: Bereich von Zufallszahlen, so erzeugten – von 0 bis 32767. Unter Umständen müssen Sie eine Reihe von Zahlen zu füllen 200 bis 300, von 0.1 bis 1, von -20 bis 20. Diese Zufallszahl-Erzeugungs ist möglich und einfach zu implementieren. In dem Beispiel, lassen Sie uns einige Fälle betrachten:

In der ersten for-Schleife Es führt zur Erzeugung von Zufallszahlen und bestimmte Bereiche des Verbringens in den entsprechenden Feldern. In jeder Iteration der Schleife wird durch eine Zufallszahl erzeugt werden Novye. Vielleicht hat jemand ist schwer zu verstehen, wie dies geschieht. Lassen Sie uns im Detail betrachten:

rand() % 7rand() Er erzeugt eine Reihe von weiter ausgewertet Modulo na 7 dieser Zahl. verständlicherweise, es kann nur aus sein Aus 0 zu 6. Zum Beispiel erzeugt 50 – der Rest der Division nA 7 gleich 1, erzeugt 49 – der Rest der Division nA 7 gleich 0.

1 + rand() % 7 – sehr ähnlich zu dem vorherigen Fall, nur 0 werden wir nicht sehen, und hier 7 wird in dem Bereich. Zum Beispiel erzeugt 49 – der Rest der Division nA 7 ist 0 und das Gerät wird hinzugefügt, erzeugt 6 – der Rest der Division nA 7 ist 6 und wieder Einheit hinzugefügt.

200 + rand() % 101 – Es gibt uns die Anzahl der 200 zu 300. Zum Beispiel erzeugt 100 – der Rest der Division nA 101 ist 100 und fügte hinzu, 200. Wir bekommen die Anzahl der 300. erzeugt 202: 200 + (202 % 101)= 200 + 0 = 200.

rand() % 41 - 20 – aus dem – 20 bis 20. Zum Beispiel erzeugt 1: (1 % 40) – 20 = 1 – 20 = -19; erzeugt 30: 30 – 20 = 10.

0.01 * (rand() % 101) – aus dem 0.01 bis 1. Zum Beispiel erzeugt 55: 0.01* 55 = 0.55.

Ergebnis:

eine andere c ++, srand c ++, einen Zufallszahlengenerator C ++

Um der Praxis, versuchen, das Problem zu lösen: Computer “denkt an” einschließlich von der 1 bis 7, ein Benutzer hat es zu erraten. Wenn Sie scheitern – Siehe unsere Lösungsvarianten:

Kompiliruem:
rand c++, srand c++, генератор случайных чисел C++

Probleme mit rand() Artikel hat Aufgaben: Arrays in C ++. Nehmen Sie sich etwas Zeit und das Video zu sehen (Autor: Markov Denis). Zufällige с 20′

Zur Unterstützung unserer Website – klicken Sie auf das Sparschwein und wählen Sie eine beliebige bequeme Weise.

Abonnieren bleiben auf neue Artikel auf der Website aktualisiert:


Ich bin damit einverstanden, Nachrichten zu empfangen von purecodecpp.com auf meine E-Mail

Datum
Seite
rand() - einen Zufallszahlengenerator in C ++
Wertung
5

39 Gedanken zu "rand() – einen Zufallszahlengenerator in C ++

    1. und). Schleife, b). poelementno, durch das Stück, in). hintereinander…

  1. Jungs meine Frage, wie dieses Programm mit einer Reihe von unbestimmter Länge zu implementieren? Etwa erraten das Passwort, mit einem Computer zu entwickeln, die.

  2. Guten Tag! Спасибо Вам огромное за материалы! Сохранил сайт в закладки.

  3. int main()
    {

    für(;;) {

    int number_user(0);

    cout <> number_user;
    cout << endl;

    für(int a = 0; ein < 7; a ++) {

    int mas [7] {};

    srand(Zeit(NULL));
    mas [ein] = 1 + rand() % 7;

    ob(mas[ein] == number_user) {

    cout << "Great!!!" << endl;
    cout < ” << number_user << " = " << mas[ein] << " <- Computer number!!!" << endl;
    Unterbrechung;
    } sonst {

    cout << "Sorry, computer number = " << mas[ein] << endl;
    cout << "Try again!" << endl;
    Unterbrechung;
    }
    }
    }
    Rückkehr 0;
    }

    Сделал последнее задание таким образом, спасибо авторам за материалы и хороший сайт! Очень помогает в осваивании С++)

Hinterlasse eine Antwort

Platz Code in Tags: <pre class="lang:c ++ dekodieren:true ">DEIN CODE</Vor>