rand() – a random number generator in C ++




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

It is not always necessary to fill the numerical one-dimensional and two-dimensional arrays serial numbers or specific values. Perhaps, you will need to fill the elements of the array with random numbers. In C ++, there are special fynktsii rand() and srand(). They are in bibliotechnom file cstdlib, so that their use in the program, you need to connect this library file: #include <cstdlib> or #include <stdlib.h> (for older compilers). If we use only function rand() – will receive the same “random numbers” from run to run. Enter the following code and compile the program several times. Note, what “random numbers” there will always be the same.

A random number is generated in a string 11 and recorded in i-th element of the array randomDigits. In the next string, ask him to show. Starting the program will see each time Only overnight and same numbers:

генератор случайных чисел C++, rand c++, srand c++It turns out, that the numbers are generated is not entirely random. In order to achieve “present” random number at restartx program, you must apply the function srand() to function rand(). Thus it is necessary to pass it as a parameter function time() with a parameter NULL: srand(time(NULL)); (parameter or function argument – It `s that, that is written in the parentheses after the function name. When we consider the theme Functions in C ++, talk about this more in detail). In this way srand() It receives as a parameter the current system time, which will be different for each program starting. This will function rand() each time it is to generate random numbers. For use time() you must connect the library file ctime (time.h for older compilers): #include <ctime> .

Try to run. You make sure, now generated different number at each compilation. I have turned this result:

rand c++, srand c++, генератор случайных чисел
The first compilation
rand c++, srand c++, генератор случайных чисел
The second compilation

All looks good. Only there is one point: range of random numbers, that are generated in such a way – from 0 to 32767. You may need to fill in an array of numbers 200 to 300, from 0.1 to 1, from -20 to 20. This random number generation is possible and easy to implement. Let's look at a few example cases:

In the first the for loop random number generation happens certain ranges and their entry in the appropriate arrays. In each step of the cycle will generate new random numbers. Perhaps someone is difficult to understand how it happens. Let us consider in detail:

rand() % 7rand() it generates a number of further evaluated remainder of the division at 7 of that number. Clear, it may be of only From 0 to 6. For example generated 50 – the remainder of the division by 7 is equal to 1, generated 49 – the remainder of the division by 7 is equal to 0.

1 + rand() % 7 – very similar to the previous case, only 0 we will not see, and here 7 will be in the range. For example generated 49 – the remainder of the division by 7 is 0 and adds one to it, generated 6 – the remainder of the division by 7 is 6 and again added unit.

200 + rand() % 101 – give us a number from 200 to 300. For example generated 100 – the remainder of the division by 101 is 100 and added 200. We get the number of 300. Is generated 202: 200 + (202 % 101)= 200 + 0 = 200.

rand() % 41 - 20 – from the – 20 to 20. For example generated 1: (1 % 40) – 20 = 1 – 20 = -19; generated 30: 30 – 20 = 10.

0.01 * (rand() % 101) – from the 0.01 to 1. For example generated 55: 0.01* 55 = 0.55.

Result:

rand c  , srand c  , a random number generator C ++

To practice, try to solve the problem: a computer “thinks of” number from 1 to 7, a user has to guess it. If it does not work out – see our variant solutions:

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

Tasks with rand() there is an article Tasks: Arrays in C++. Take some time and watch the video (Author: Markov Denis). Random from 20′

To support our site – click on the piggy bank and choose any convenient way.

Subscribe to stay updated on new articles on the site:


Agree to receive notifications from purecodecpp.com to my e-mail

Date
page
rand() - a random number generator in C ++
Rating
5

39 thoughts on “rand() – a random number generator in C ++

    1. and). loop, b). poelementno, by the piece, in). in sequence…

  1. Ребята у меня вопрос как осуществить эту программу с массивом неопределенной длины? Грубо говоря подобрать пароль, к тому что придумает компьютер.

    1. В C/C++ в принципе нет ничего похожего намассивом неопределенной длины”.

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

  3. int main()
    {

    for(;;) {

    int number_user(0);

    cout <> number_user;
    cout << endl;

    for(int a = 0; a < 7; a++) {

    int mas [7] {};

    srand(time(NULL));
    mas [a] = 1 + rand() % 7;

    if(mas[a] == number_user) {

    cout << "Great!!!" << endl;
    cout < ” << number_user << " = " << mas[a] << " <- Computer number!!!" << endl;
    break;
    } else {

    cout << "Sorry, computer number = " << mas[a] << endl;
    cout << "Try again!" << endl;
    break;
    }
    }
    }
    return 0;
    }

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

Leave a Reply

Place code in tags: <pre class="lang:c++ decode:true ">YOUR CODE</pre>