rand() – un générateur de nombre aléatoire en C ++

rand() – un générateur de nombre aléatoire en C ++
5 (100%) 1 vote




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

Il est pas toujours nécessaire de remplir le numérique dimensionnelle et Deux dimensions des tableaux numéros de série ou des valeurs spécifiques. peut-être, Vous aurez besoin de remplir les éléments du tableau avec des nombres aléatoires. En C ++, il y a fynktsii spéciale rand() et srand(). Ils sont dans le fichier bibliotechnom cstdlib, de sorte que leur utilisation dans le programme, vous devez connecter ce fichier de bibliothèque: #comprendre <cstdlib> ou #comprendre <stdlib.h> (pour les compilateurs anciens). Si nous utilisons la seule fonction rand() – Nous allons recevoir le même “nombres aléatoires” par zapyska pour lancer. Entrez le code suivant et compiler le programme à plusieurs reprises. S'il vous plaît noter, que “nombres aléatoires” il y aura toujours le même.

Le nombre aléatoire est généré en ligne 11 et enregistré dans je-ième élément de la matrice randomDigits. Dans la ligne suivante, demandez-lui de montrer. Démarrage du programme verra chaque fois TE Seulement la nuit et même chisla:

генератор случайных чисел C++, rand c++, srand c++Il se trouve, que les chiffres sont générés ne sont pas entièrement aléatoire. pour obtenir “présent” nombre aléatoire au redémarrageX programmes, vous devez appliquer la fonction srand() pour fonctionner rand(). Ainsi, il est nécessaire de passer en fonction de paramètres temps() avec un paramètre NUL: srand(temps(NUL)); (paramètre ou fonction argumentation – est, ce qui est écrit dans les parenthèses après le nom de la fonction. Lorsque nous considérons le sujet Fonctions en C ++, parler plus en détail). ainsi srand() Elle reçoit en tant que paramètre du temps actuel du système, qui sera différent pour chaque programme zapuske. Cela fonctionne rand() à chaque fois qu'il est de générer des nombres aléatoires. pour une utilisation temps() vous devez connecter le fichier de bibliothèque ctime (time.h pour les compilateurs anciens): #comprendre <ctime> .

essayez d'exécuter. vous faites, maintenant généré un nombre différent à chaque compilation. Je reçois ce résultat:

rand c++, srand c++, генератор случайных чисел
Première compilation
rand c++, srand c++, генератор случайных чисел
deuxième compilation

Tout semble agréable. Seulement il y a un point: gamme de nombres aléatoires, ainsi générés – à partir de 0 jusqu'à 32767. Vous devrez peut-être remplir un tableau de nombres 200 jusqu'à 300, à partir de 0.1 jusqu'à 1, à partir de -20 jusqu'à 20. Cette génération de nombre aléatoire est possible et facile à mettre en œuvre. Dans l'exemple, considérons quelques cas:

Dans le premier pour la boucle Elle conduit à la génération de nombres aléatoires et certaines gammes de leur entrée dans les tableaux correspondants. Dans chaque itération de la boucle sera générée par un nombre aléatoire novye. Peut-être que quelqu'un est difficile de comprendre comment cela se produit. Considérons en détail:

rand() % 7rand() Il génère un certain nombre de plus évalué modulo na 7 de ce nombre. naturellement, il peut être de seulement De 0 à 6. Par exemple généré 50 – le reste de la division nA 7 est égal à 1, généré 49 – le reste de la division nA 7 est égal à 0.

1 + rand() % 7 – très similaire au cas précédent,, seulement 0 nous ne verrons pas, et ici 7 sera dans la gamme. Par exemple généré 49 – le reste de la division nA 7 est 0 et l'unité est ajoutée à ce, généré 6 – le reste de la division nA 7 est 6 et encore ajouté unité.

200 + rand() % 101 – Il nous donnera le nombre de 200 à 300. Par exemple généré 100 – le reste de la division nA 101 est 100 et ajoutés 200. Nous obtenons le nombre de 300. généré 202: 200 + (202 % 101)= 200 + 0 = 200.

rand() % 41 - 20 – du – 20 jusqu'à 20. Par exemple généré 1: (1 % 40) – 20 = 1 – 20 = -19; généré 30: 30 – 20 = 10.

0.01 * (rand() % 101) – du 0.01 jusqu'à 1. Par exemple généré 55: 0.01* 55 = 0.55.

résultat:

autre c ++, srand c ++, un générateur de nombres aléatoires C ++

Pour pratiquer, essayer de résoudre le problème: ordinateur “pense à” y compris de la 1 jusqu'à 7, un utilisateur de le deviner. Si vous ne – Voir nos solutions variantes:

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

problèmes avec rand() l'article a tâches: Les tableaux en C ++. Prenez le temps de regarder la vidéo (auteur: Markov Denis). с aléatoire 20′

Pour soutenir notre site – cliquez sur la tirelire et choisir un moyen pratique.

Bulletin de nouvelles leçons sur la programmation:

42 réflexions sur "rand() – un générateur de nombre aléatoire en C ++

    1. et). boucle, b). poelementno, par la pièce, dans). une après l'autre,…

  1. Les gars ma question est de savoir comment mettre en œuvre ce programme avec un tableau de longueur indéterminée? En gros deviner le mot de passe, à venir avec un ordinateur.

  2. int main()
    {

    pour(;;) {

    int number_user(0);

    cout <> number_user;
    cout << endl;

    pour(int a = 0; une < 7; a ++) {

    int plus [7] {};

    srand(temps(NUL));
    mais [une] = 1 + rand() % 7;

    si(mais[une] == number_user) {

    cout << "Great!!!" << endl;
    cout < ” << number_user << " = " << mais[une] << " <- Numéro d'ordinateur!!!" << endl;
    Pause;
    } autre {

    cout << "Sorry, numéro de l'ordinateur = " << mais[une] << endl;
    cout << "Try again!" << endl;
    Pause;
    }
    }
    }
    retour 0;
    }

    J'ai fait une dernière tâche de cette façon, grâce aux auteurs des matériaux et bon site! Il aide vraiment dans la maîtrise de C ++)

Laisser un commentaire

Placez le code dans les balises: <pre class="lang:c ++ décodage:true ">VOTRE CODE</pré>