Введение в генератор случайных чисел в 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 ++. Здесь мы обсуждаем, как генерировать случайные числа, а также примеры и шаги. Вы также можете посмотреть следующую статью, чтобы узнать больше -
- Модификаторы доступа в C ++
- Генератор случайных чисел в Python
- Генератор случайных чисел в R
- Переменные в C ++
- Модификаторы доступа в PHP
- Генератор случайных чисел в C #
- Лучшие 11 функций и преимуществ C ++
- Примеры встроенных функций Python