функція rand(). це вбудована функція в C++ STL, яка визначена у файлі заголовка . rand() використовується для створення серії випадкових чисел. Випадкове число генерується за допомогою алгоритму, який видає ряд непов’язаних чисел під час кожного виклику цієї функції. Функція rand() використовується в C++ для генерування випадкових чисел у діапазоні [0, RAND_MAX).
RAND_MAX: Це константа, значення за замовчуванням якої може відрізнятися в різних реалізаціях, але воно має бути принаймні 32767.
тигр порівняно з левом
Синтаксис rand()
int rand (void);>
Параметри rand()
- Ця функція не приймає жодних параметрів.
Повернене значення rand()
- ранд() повертає псевдовипадкове число в діапазоні [0, RAND_MAX).
Скажімо, ми генеруємо 5 випадкових чисел у C++ за допомогою rand() у циклі, тоді кожного разу, коли ми компілюємо та запускаємо програму, наш результат має бути однаковою послідовністю чисел.
Приклад rand()
C++
// C++ program to demonstrate> // the use of rand()> #include> #include> using> namespace> std;> > int> main()> {> >// This program will create some sequence of> >// random numbers on every program run> >for> (>int> i = 0; i <5; i++)> >cout <<>rand>() <<>' '>;> > >return> 0;> }> |
>
>Вихід
1804289383 846930886 1681692777 1714636915 1957747793>
Складність функції rand().
Часова та просторова складність функції rand() такі:
- Складність часу: O(1) Складність допоміжного простору: O(1)
Примітка: Ця програма створюватиме однакову послідовність випадкових чисел під час кожного запуску програми.
Наведена нижче програма є реалізацією функції rand() для отримання значення від 0 до N-1
C++
// C++ program to demonstrate the> // use of rand() to get value> // in a range of 0 to N-1> #include> #include> using> namespace> std;> > int> main()> {> >int> N = 100;> >// This program will create some sequence of random> >// numbers on every program run within range 0 to N-1> >for> (>int> i = 0; i <5; i++)> >cout <<>rand>() % N <<>' '>;> > >return> 0;> }> > // This code is contributed by Susobhan Akhuli> |
>
>Вихід
83 86 77 15 93>
Наведена нижче програма є реалізацією функції rand() для отримання значення від Upper_Bound до Lower_Bound.
C++
string.format рядок java
// C++ program to demonstrate> // the use of rand() to get value> // in a range of lb to ub> #include> #include> using> namespace> std;> > int> main()> {> >int> lb = 20, ub = 100;> >// This program will create some sequence of random> >// numbers on every program run within range lb to ub> >for> (>int> i = 0; i <5; i++)> >cout << (>rand>() % (ub - lb + 1)) + lb <<>' '>;> > >return> 0;> }> > // This code is contributed by Susobhan Akhuli> |
>
>Вихід
66 90 38 99 88>
srand()
Функція srand() є вбудованою функцією в C++ STL, яка визначена в файл заголовка. srand() використовується для ініціалізації генераторів випадкових чисел. Функція srand() встановлює початкову точку для створення серії псевдовипадкових цілих чисел. Якщо srand() не викликається, початкове значення rand() встановлюється так, ніби srand(1) викликається під час запуску програми. Будь-яке інше значення початкового значення встановлює генератор на іншу початкову точку.
Синтаксис srand()
void srand( unsigned seed ); OR int srand( unsigned int seed);>
Заповнює генератор псевдовипадкових чисел, який використовує rand(), значенням насіння.
Параметри
- насіння: Засіб для нової послідовності псевдовипадкових чисел, які повертаються послідовними викликами rand()
Повернене значення
- Ця функція повертає псевдозгенероване випадкове число.
Примітка: Генератор псевдовипадкових чисел слід задавати лише один раз перед будь-якими викликами rand() і на початку програми. Його не слід повторно заповнювати або заповнювати щоразу, коли ви хочете створити нову партію псевдовипадкових чисел.
Стандартною практикою є використання результату виклику до srand(час(0)) як насіння. Однак time() повертає значення time_t, яке щоразу змінюється, і, отже, псевдовипадкове число змінюється для кожного виклику програми.

ранд() і srand() порівняння
Приклад srand()
C++
// C++ program to generate random numbers> #include> #include> #include> using> namespace> std;> > int> main()> {> >// This program will create different sequence of> >// random numbers on every program run> > >// Use current time as seed for random generator> >srand>(>time>(0));> > >for> (>int> i = 0; i <4; i++)> >cout <<>rand>() <<>' '>;> > >return> 0;> }> |
>
>Вихід
1326865685 1413967981 1967280748 919663823>
Часова складність : O(N), де N – кількість випадкових чисел, які мають бути згенеровані.
Примітка: Ця програма створюватиме іншу послідовність випадкових чисел під час кожного запуску програми.
Як srand() і rand() пов’язані між собою?
srand() встановлює початкове число, яке rand використовує для генерування випадкових чисел. Якщо ви не викликаєте srand перед своїм першим викликом rand, це буде так, ніби ви викликали srand(1), щоб встановити початкове значення в одиницю.
Коротко, srand() — Встановити початкове значення для функції rand(). .