random number generator c
Цей підручник докладно описує використання функцій rand () та srand () докладно для створення випадкових чисел у C ++:
Багато разів ми вимагаємо використання випадкових чисел у нашому додатку для створення симуляцій або ігор та інших програм, які вимагають випадкових подій.
Наприклад, у грі в кістки, не маючи випадкових подій, ми матимемо ту саму сторону, яка вискакує кожного разу, коли ми кидаємо кістки, тим самим даючи небажані результати.
Таким чином, стає необхідним мати у своєму розпорядженні генератор випадкових чисел. У фізичному середовищі ми можемо генерувати випадкові події, але це неможливо, коли мова йде про комп’ютери.
=> Прочитайте серію навчальних програм Easy C ++.
Це пов’язано з тим, що все в комп’ютерах є двійковим, тобто 0 або 1 (істинним чи хибним), а між ними немає нічого. Отже, комп’ютери зазвичай генерують передбачувані події і не здатні генерувати випадкові події.
Натомість комп’ютери імітують випадковість, яка виконується за допомогою генератор псевдовипадкових чисел (PRNG) . С ++ має генератор випадкових чисел і може використовуватися з багатьма додатками.
У цьому підручнику ми детально обговоримо функції / підходи для генерації випадкових чисел у C ++.
Що ви дізнаєтесь:
- Генератор псевдовипадкових чисел (PRNG) на C ++
- rand та srand Функції в C ++
- Різниця між rand () та srand ()
- C ++ Random Float
- Випадкове число C ++ від 0 до 1
- Випадкове число C ++ від 1 до 10
- Часті запитання
- Висновок
- Рекомендована література
Генератор псевдовипадкових чисел (PRNG) на C ++
Загалом, генератор псевдовипадкових чисел (PRNG) може бути визначений як програма, яка приймає насіння або вихідне число і перетворює його на якесь інше число, яке відрізняється від насіння за допомогою математичних операцій.
Цей процес здійснюється багаторазово, беручи кожен раз останнє згенероване число. Кожного разу, коли генероване число не пов’язане з попередніми номерами. Таким чином, ця програма здатна генерувати серію чисел, які видаються випадковими.
Мова С ++ постачається із вбудованим генератором псевдовипадкових чисел і забезпечує дві функції rand () і srand (), які можна використовувати для генерації випадкових чисел.
Давайте детально обговоримо ці дві функції.
Запитання для співбесіди для розробника sql за 4 роки досвіду
rand та srand Функції в C ++
srand ()
Прототип функції: void srand (без назви int насіння);
Параметри: seed - цілочисельне значення, яке буде використано як насіння алгоритмом генератора псевдовипадкових чисел.
Повернене значення: Жоден
Опис: Функція srand використовується для ініціалізації послідовності псевдовипадкових чисел параметром, який називається «випадкове насіння». Це робить висновок функції rand випадковим. В іншому випадку результат функції rand () буде незмінним кожного разу, коли ми її викликаємо.
Таким чином, якщо ми запустимо генератор випадкових чисел за допомогою функції srand (), він запустить генератор з точки, яка залежить від значення аргументу, переданого srand. Якщо встановити генератор випадкових чисел із системним часом Наприклад, перед першим викликом функції rand (), тоді вона буде генерувати випадкові числа кожного разу, коли ми запускаємо програму.
Зверніть увагу, що нам зазвичай потрібно викликати функцію srand () лише один раз перед викликом функції rand (), а не кожен раз, коли ми генеруємо випадкові числа.
rand ()
Прототип функції: int rand (void);
Параметри: жоден
Повернене значення: Ціле число від 0 до RAND_MAX.
Опис: Функція rand () генерує наступне випадкове число в послідовності. Згенерованим числом є псевдовипадкове ціле число від 0 до RAND_MAX. RAND_MAX - це константа в заголовку, яка зазвичай має значення 32767.
#include #include #include int main() { std::srand(static_cast(std::time(nullptr))); for (int count=1; count <= 100; ++count) { std::cout << std::rand() << ' '; // display 5 random numbers per row if (count % 5 == 0) std::cout << '
'; } return 0; }
Вихід:
У наведеній вище програмі ми створили перші 100 випадкових чисел, надавши системний годинник як затравку для функції srand. У цій програмі ми використовували як функції srand, так і функції rand. Зверніть увагу, що через системний годинник як початковий, вихідний результат буде різним кожного разу, коли ми виконуємо програму.
Різниця між rand () та srand ()
рядок () | srand () |
---|---|
Використовується для генерації випадкових чисел. | Насіння PRNG, що використовується функцією rand (). |
Викликається стільки разів, скільки ми хочемо сформувати випадкові числа. | Викликали лише один раз, щоб побачити генератор випадкових чисел. |
Не приймає жодних аргументів. | Бере параметр, який використовується для зародження генератора випадкових чисел. |
Повертає послідовність випадкових чисел кожного разу, коли вона викликається. | Не повертає значення. |
C ++ Random Float
Функція rand (), яку ми бачили вище за замовчуванням, повертає ціле число, яке в певних випадках може спричинити переповнення. Таким чином, ми можемо використовувати плаваюче або подвійне значення. Ми можемо генерувати випадкові числа з плаваючим числом, відкинувши значення повернення функції rand () у значення «float».
Таким чином, наступне генерує випадкове число між плаваючими 0,0 та 1,0 (обидва включно).
cout< Подібно до цього, рядок нижче генерує випадкове число між 1,2 і 3,4
cout<<1.2 + static_cast (rand()) / ( static_cast (RAND_MAX/(3.4-1.2)));
У нашому наступному прикладі нижче ми використовуємо випадковий плаваючий для генерації результату.
Випадкове число C ++ від 0 до 1
Ми можемо використовувати функції srand () і rand (), щоб генерувати випадкові числа від 0 до 1. Зверніть увагу, що ми повинні передавати вивід функції rand () до десяткового значення або з плаваючою, або з подвійною.
Повернене значення за замовчуванням функції rand (), тобто ціле число є недостатнім для відображення випадкових чисел від 0 до 1, які є дробами.
Наведена нижче програма C ++ відображає перші п'ять випадкових чисел від 0 до 1.
найкраще безкоштовне програмне забезпечення для чищення ПК - -
#include #include using namespace std; int main() { cout<<'Random numbers generated between 0 and 1:'< Вихідні дані :

Ми бачимо, що результатом роботи програми є випадкове число від 0 до 1, яке є дробом.
Якщо ми не приведемо повернене значення функції rand () до плаваючого або подвоєного, тоді ми отримаємо 0 як випадкове число.
Випадкове число C ++ від 1 до 10
Наступним прикладом є генерація випадкових чисел від 1 до 10. Далі йде програма C ++, яка генерує випадкові числа.
Ми викликаємо функцію srand із системним годинником, а потім викликаємо функцію rand з операторами модуля 10.
#include #include #include using namespace std; int main() { srand(time(0)); // Initialize random number generator. cout<<'Random numbers generated between 1 and 10:'< Вихід:

У вищезазначеній програмі ми генеруємо перші 10 випадкових чисел від 1 до 10. Зверніть увагу, що кожного разу, коли програма запускається, вона буде генерувати різні набори чисел через викликану функцію srand.
Часті запитання
Q # 1) Що таке файл заголовка для випадкової функції в C ++?
Відповідь: Функції для генерації випадкових чисел, rand та srand визначені в< cstdlib > заголовок C ++.
Q # 2) Що таке Rand_max у C ++?
Відповідь: RAND_MAX є константою в заголовку, як правило, встановленою на значення 32767. Генератор псевдовипадкових чисел (PRNG) генерує випадкові числа від 0 до RAND_MAX.
Q # 3) Як працює випадкова функція?
Відповідь: C ++ підтримує дві випадкові функції, тобто srand () і rand (). Функція srand () засіває генератор випадкових чисел, що використовується функцією rand (), яка генерує послідовність випадкових чисел залежно від наданого початкового числа.
Q # 4) Як ти ганьбиш з часом?
Відповідь: Функція srand створює генератор псевдовипадкових чисел (PRNG), що використовується функцією rand (). Стандартною практикою є використання результату виклику часу (0) як насіння. Ця функція часу повертає значення, кількість секунд з 00:00 годин, 1 січня 1970 р., UTC (поточна мітка часу UNIX).
Таким чином, значення насіння змінюється щосекунди. Отже, кожен раз, коли srand викликається з функцією часу, генерується новий набір випадкових чисел.
Висновок
У цьому посібнику ми детально обговорили створення випадкових чисел. Мови програмування або загалом комп’ютери не генерують випадкових чисел, оскільки вони призначені для прогнозування результату. Отже, нам потрібно імітувати випадковість.
Для того, щоб імітувати випадковість, ми використовуємо генератор псевдовипадкових чисел (PRNG), який вбудований в С ++. Таким чином, використовуючи дві функції, rand () і srand (), ми можемо генерувати випадкові числа в C ++.
Функція srand () використовується для забезпечення насіння для генерації випадкових чисел, тоді як функція rand () генерує наступне випадкове число в послідовності.
=> Шукайте тут цілу серію навчальних програм C ++.
Рекомендована література
- Випадкове число C # та генератор випадкових рядків C # із прикладами коду
- Підручник з основних функцій Python з практичними прикладами
- Підручник з труб Unix: Труби в програмуванні Unix
- Рекурсія в C ++
- Функції друзів в C ++
- Поліморфізм у C ++
- Об'єктно-орієнтоване програмування на C ++
- ООП Java: Вступ до об’єктно-орієнтованого програмування на Java