Введение в генератор случайных чисел в C ++

Много раз в нашем программировании возникает ситуация, когда числа генерируются случайным образом. Например, игра в кости, раздача карт игрокам, приложения для перестановки песен и т. Д. Чтобы справиться с этим, у нас должны быть некоторые утилиты. В C ++ у нас есть две утилиты для генерации случайных чисел. Сначала мы рассмотрим эти функции, поймем их потребности. Позже мы будем использовать их в нашем коде для достижения функциональности. Итак, давайте начнем с функций и библиотеки, с которой он связан. В этой теме мы узнаем о генераторе случайных чисел в C ++.

Как сгенерировать случайное число?

Для генерации случайных чисел C ++ предоставляет утилиты. Все мы знаем, что большинство встроенных функций включены в заголовочный файл C ++. Одним из таких заголовочных файлов является stdlib.h. Это стандартная библиотека, имеющая много встроенных функций, таких как EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL и т. Д. Используя эти функции, мы легко можем получить необходимое решение. Нам не нужно писать длинную логику, чтобы получить выход. Вместо этого мы можем просто вызвать одну из этих встроенных функций в соответствии с нашими потребностями. Таким же образом, для достижения генерации случайных чисел, у нас есть две встроенные функции. Они рандомизированы и рандомны. Используя их в комбинации, мы можем получить желаемый результат.

Давайте посмотрим, что эти функции в основном.

  • randomize () - эта функция отвечает за генерацию случайного числа при каждом запуске программы. Результат будет уникальным при каждом выполнении кода. Этот уникальный вывод заставляет нас больше полагаться на эту функцию. Например, в первый раз, когда вы запустите код, он сгенерирует вывод, например, 75, 23, 56, 24, 5, 21, 76, 32, 20 и 37. В следующий раз он сгенерирует вывод как: 5, 64, 51, 78, 94, 53, 41, 19, 96 и 52. Мы увидим, как будет вывод с этой функцией и без нее, написав код в следующем разделе.
  • rand () - чтобы сгенерировать числа от 0 до RAND_MAX-1, мы будем использовать эту функцию. Здесь RAND_MAX обозначает максимально возможный диапазон числа. Допустим, нам нужно сгенерировать случайные числа в диапазоне от 0 до 99, тогда значение RAND_MAX будет равно 100. Исходя из потребностей приложения, которое мы хотим построить, выбирается значение RAND_MAX. Например, если это игра в кости, то RAND_MAX будет 6. Если это карточная игра, то RAND_MAX будет 52 и т. Д.

Просто помните, что обе функции объявлены в стандартной библиотеке stdlib.h. Поэтому не забудьте включить этот заголовочный файл в свой код. Теперь давайте посмотрим, как мы можем написать простую программу генератора случайных чисел.

Пример с шагами

Теперь, когда мы получили представление о том, как работает функция генератора случайных чисел, давайте напишем основную программу, которая будет генерировать случайное число и печатать выходные данные.

Давайте напишем программу шаг за шагом, чтобы получить более полное представление о работе.

  • Первым шагом будет включение двух заголовочных файлов, необходимых для программы. Первый, если ч включить функции ввода и вывода. Это заголовочный файл потока ввода-вывода. Второй и важный заголовочный файл - это stdlib.h. Как обсуждалось ранее, эта стандартная библиотека содержит две функции: rand и randomize. Поэтому включите их оба в начале кода.

#include
#include
using namespace std;

  • Теперь, когда мы включили заголовочные файлы, следующий шаг - написать основную функцию для выполнения кода. Определить основную функцию в следующей части.

int main( )
(
)

  • Объявите число для хранения и напечатайте значение случайного числа. Тип данных будет иметь тип int и давать любое имя.

int number;

  • Нам нужен счетчик цикла, чтобы увеличить значения в цикле. Итак, объявите индекс i типа int. Максимальное значение приращения мы определим в цикле for .

int i;

  • Теперь мы напишем цикл for для печати значений случайно сгенерированного числа. Для простоты мы печатаем 10 номеров. Таким образом, максимальное количество приращений будет 10.

for(i = 1; i <= 10; i++)
(
)

  • Внутри цикла мы напишем функцию rand. Приведенный ниже код говорит нам, что любое сгенерированное случайное число будет разделено на 100, а остаток взят. Это означает, что напечатанные числа будут в диапазоне от 0 до 99. Если вы хотите более высокие диапазоны, по модулю число будет другим. То есть вместо 100 мы можем разместить 150, 200, 100 и т. Д.

number = rand() % 100;

  • На последнем шаге мы распечатаем сгенерированный номер, используя cout.

cout << number << "\t";

  • Вывод кода такой, как показано ниже. Пожалуйста, имейте в виду, что вы можете получить различный вывод, поскольку его генератор случайных чисел.

  • Проблема с приведенным выше кодом заключается в том, что каждый раз, когда мы запускаем код, получим один и тот же набор выходных данных. Чтобы избежать этого, мы должны использовать srand (). Здесь мы ссылаемся на время в этом экземпляре и генерируем новые значения каждый раз, когда запускаем программу.

Давайте посмотрим на полный код с функцией srand.

#include
#include
using namespace std;
int main( )
(
int number;
int i;
srand(time(0));
for(i = 1; i <= 10; i++)
(
number = rand() % 100;
cout << number << "\t";
)
)

Два исполнительных выхода кода:

Первое исполнение:

Второе исполнение:

  • Ниже приведен код для генерации 5 случайных чисел в пределах 1000. Измените значение числа и просмотрите выходные данные, генерируемые каждый раз. Сравните различия использования без знака и без использования.

#include
#include
#include
int main ()
(
int i, number;
time_t nTime;
number = 5;
srand((unsigned) time(&nTime));
printf("Random numbers are: \n");
for( i = 0 ; i < number ; i++ )
(
printf("%d\n", rand() % 1000);
)
return(0);
)

Выход:

За 1- ю итерацию

Для 2- й итерации

Вывод - генератор случайных чисел в C ++

В этой статье мы узнали, что такое генератор случайных чисел, потребности генератора случайных чисел, встроенные функции C ++ для достижения этого, с использованием функции рандомизации и без нее, значение стандартной библиотеки stdlib.h, пошаговые инструкции написать код и, наконец, сравнить результаты двух разных подходов.

Рекомендуемые статьи

Это руководство для генератора случайных чисел в C ++. Здесь мы обсуждаем, как генерировать случайные числа, а также примеры и шаги. Вы также можете посмотреть следующую статью, чтобы узнать больше -

  1. Модификаторы доступа в C ++
  2. Генератор случайных чисел в Python
  3. Генератор случайных чисел в R
  4. Переменные в C ++
  5. Модификаторы доступа в PHP
  6. Генератор случайных чисел в C #
  7. Лучшие 11 функций и преимуществ C ++
  8. Примеры встроенных функций Python