Вступ про генератор випадкових чисел у 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. Тому не забудьте включити цей файл заголовка у свій код. Тепер давайте подивимось, як ми можемо написати просту програму генератора випадкових чисел.

Приклад із кроками

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

Давайте запишемо програму поетапно, щоб отримати більш глибоке розуміння роботи.

  • Першим кроком буде включення двох файлів заголовків, необхідних для програми. Перший, якщо h, щоб включити вхідні та вихідні функції. Це файл заголовка потоку вводу-виводу. Другий і важливий файл заголовка - stdlib.h. Як обговорювалося раніше, ця стандартна бібліотека містить дві функції: рандинг та рандомізацію. Тому включіть їх обох на початку коду.

#include
#include
using namespace std;

  • Тепер, коли ми включили файли заголовків, наступним кроком є ​​написання основної функції для виконання коду. Визначити головну функцію в наступній частині.

int main( )
(
)

  • Оголосіть число, щоб утримувати та друкувати значення випадкового числа. Тип даних буде типу int та дасть будь-яке ім’я.

int number;

  • Нам потрібен лічильник циклу для збільшення значень у циклі. Тому оголосимо індекс i типу int. Максимальне значення приросту, яке ми визначимо для циклу .

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- ї ітерації

Для другої ітерації

Висновок - Генератор випадкових чисел у С ++

У цій статті ми дізналися, що таке генератор випадкових чисел, потреби генератора випадкових чисел, вбудованих функцій C ++ для досягнення цього, за допомогою та без використання функції рандомізації, значення стандартної бібліотеки stdlib.h, покрокові інструкції написати код і, нарешті, порівняти результати двох різних підходів.

Рекомендовані статті

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

  1. Доступ до модифікаторів на C ++
  2. Генератор випадкових чисел у Python
  3. Генератор випадкових чисел в R
  4. Змінні в C ++
  5. Доступ до модифікаторів у PHP
  6. Генератор випадкових чисел у C #
  7. Топ-11 особливостей та переваг C ++
  8. Приклади вбудованих функцій Python