Прототип функции rand:
int rand( void );
Название | Язык |
---|---|
stdlib.h | С |
cstdlib | С++ |
Описание
Функция rand генерирует случайные числа, возвращает псевдослучайное целое число в диапазоне от 0 до RAND_MAX
.
Это число генерируется алгоритмом, который возвращает последовательность псевдо-случайных чисел. Этот алгоритм использует своего рода «семя» — число, для создания серий случайных чисел. То есть, если семя всегда будет одно и то же, то сгенерированная последовательность чисел не будет меняться, исчезнет фактор стохастичности.
RAND_MAX
это константа, определенная в <cstdlib>
. По умолчанию её значение может изменяться, в зависимости от реализации, но, как правило, макрос RAND_MAX
меньше значения 32767 не бывает.
Типичный способ генерации псевдослучайных чисел в определенном диапазоне с использованием функции rand выполняется следующим образом:
(value % 100)
— генерация чисел в диапазоне от 0 до 99
(value % 100 + 1)
— генерация чисел в диапазоне от 1 до 100
(value % 30 + 1985)
— генерация чисел в диапазоне от 1985 до 2014
Однако, использование операции остаток от деления не создает поистине равномерно распределенных случайных чисел в заданном диапазоне, но, как правило, такой способ генерации чисел является хорошим приближением для небольших диапазонов.
Параметры:
Функция не принимает аргументов.
Возвращаемое значение
Целое псевдослучайное число в диапазоне от 0 до RAND_MAX
.
Пример: исходный код программы
//пример использования функции rand #include <iostream> #include <cstdlib> #include <ctime> int main () { int guess; srand ( time(NULL) ); // инициализация функции rand значением функции time int secret = rand() % 10 + 1; // сгенерировать секретное число do { std::cout << "Отгадайте число (от 1 до 10): "; std::cin >> guess; if (secret < guess) std::cout << "Секретное число меньшеn"; else if (secret > guess) std::cout << "Секретное число большеn"; } while (secret != guess); std::cout << "Мои поздравления!!!n"; return 0; }
Пример работы программы
Секретное число меньше
Отгадайте число (от 1 до 10): 2
Мои поздравления!!!
В этом примере, случайное зерно генерируется функцией time
(функция time
определена в заголовке <ctime>
). Использование данной функции — простой и достаточно хороший вариант генерации зерна.
Комментарии
Илья Сахарчук
TY! :D