Функция rand

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

Пример работы программы

CppStudio.com
Отгадайте число (от 1 до 10): 4
Секретное число меньше
Отгадайте число (от 1 до 10): 2
Мои поздравления!!!

В этом примере, случайное зерно генерируется функцией time (функция time определена в заголовке <ctime>). Использование данной функции — простой и достаточно хороший вариант генерации зерна.

Автор: admin
Дата: 02.09.2012
Поделиться:

Комментарии

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.