Случайное, или, более точно, псевдослучайное, число в C++ генерируется с помощью функции rand, эту функцию сначала нужно инициализировать. Инициализацию можно делать в самом начале программы 1-н раз. Подходящая команда для этого
1 |
srand(time(0)); // инициализация генератора случайных чисел с помощью метки времени 0. |
После инициализации можно выдавать целые случайные числа в диапазоне от 0 до MAX_RAND с помощью функции rand. Но, как правило, нужно получить либо вещественное случайное число, либо целое случайное число определённого диапазона. Для этого можно применить следующие манипуляции:
1 2 3 |
a = 1 + rand() % 5; // получение случайного числа от 1 до 5 – находится остаток от деления на 5 результата rand и прибавляется 1 b = 1.0+4.0*rand()/(float)RAND_MAX; // получение вещественного случайного числа от 1 до 5 – результат rand делится на константу RAND_MAX, умножается на 4, и к результату умножения прибавляется 1. |
Вся программа выглядит так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> // подключение нужных функций using namespace std; // чтобы не записывать std::cin int main() { // определяем переменные int a; double b; srand(time(0)); // инициализация генератора случайных чисел a = 1 + rand() % 5; // получаем целое случайное число от 1 до 5 b = 1.0 + 4.0 * rand() / (float)RAND_MAX; // получаем вещественное случайное число от 1 до 5 cout<<a<<" "<<b; // вывод результата на экран cin.get(); // ожидаем нажатия пользователем клавиши return 0; // возвращаем 0 - правило хорошего тона } |
Известный генератор случайных чисел ERNIE применялся на протяжении многих лет для определения выигрышных номеров британской лотереи.