rand — функция генерации случайного числа

Структуры и функции   7 Январь 2012  Автор статьи:  

Функция rand возвращает псевдо произвольное целое число в пределах от 0 до RAND_MAX.

Это число генерируется алгоритмом, который возвращает последовательность предположительно произвольных чисел каждый раз, когда он вызывается. Для создания этой произвольной последовательности алгоритм использует порождающий элемент, который должен быть инициализирован некоторым особенным числом при помощи функции srand.

RAND_MAX – константа, определенная в библиотеке cstdlib. Ее значение может варьироваться в зависимости от реализаций, но гарантируется, что оно не меньше 32767, т.е. наибольшего 16-битного числа.

Простейшим способом генерации псевдо произвольного числа, попадающего в заданный диапазон [0, m), является использование функции rand и операции взятия по модулю (в данном случае по модулю m).

Способы вызова функции

int rand ();

Сложность

Функция работает за константное время, т.е. O(1).

Примеры
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main ()
{
    //Лучший способ инициализации порождающего элемента
    srand (time (NULL));

    int value;

    value = rand();
    //Значение переменной value лежит в полуинтервале [0, RAND_MAX)

    value = rand() % 100;
    //Значение переменной value лежит в полуинтервале [0, 100)

    value = rand() % 100 + 1;
    //Значение переменной value лежит в отрезке [1, 100]

    return 0;
}
Замечания

Так как функция возвращает в худшем случае лишь 16-битные числа, то в некоторых случаях её применение нежелательно.

Научиться программировать

  • на Delphi

  • на Java

  • на C++