Прототип функции 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