fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Бізнес

Генератор випадкових чисел – технічна інформація

Про генераторі випадкових чисел
Всі явища та процеси в суспільстві бувають двох типів – випадкові і закономірні. Давайте-но спробуємо поглянути на випадкові процеси з ракурсу програміста, про події, які відбуваються закономірно нам і так все відомо. У програмуванні для отримання випадкових значень придуманий спеціальний механізм, який іменується – генератор випадкових чисел. Зрозуміло, генерація відбувається не випадковим чином, всі процеси взаємопов’язані на програмному часу. Саме з програмного таймера і утворюються ці так іменовані числа. Тобто насправді є вірним називати такий механізм – генератор псевдовипадкових чисел,хоча при алгоритмах новітніх операторів результат вибірки зізнатися виходить випадковим. Всі до єдиного події, які є в програмуванні, взаємодіють з користувачем, за допомогою операторів.
Розглянемо їх докладніше.
Функції rand, srand
У програмуванні на мові С (сі) велику роль грає регістр, тому в збиток привабливості даного підзаголовка, імена операторів починаються з прописної літери. З цього випливає, що потрібно гнатися за точністю, а не за картинкою. Для того, що б генератор випадкових чисел видавав нам випадкове значення – застосовується функція rand. Застосування нашої функції краще буде показати на прикладі:int g = rand();
На текущемпримере добре видно, що результатом функції є цілочисельний результат. Випадкове значення змінюється в діапазоні від нуля до константи, причому ця константа ініціалізується в директиві, де знаходиться оператор. Спробуйте запустити програму, яка виводить випадкове значення на екран, тільки не один, а кілька разів. Але, на жаль, результат, при кожному запуску, буде кожен раз з’являється одне і те ж значення. Справа в тому, що при компіляції програми, існуюча функція rand отлажила в пам’яті певне програмне час і при старті завжди звертається саме до цього часу. Тямовиті програмісти змогли знайти рішення даної ситуації придумали оператор srand. Його функціональність дуже легка – при будь-якому зверненні до програми функції rand, обнуляти системний таймер. Виходить, що цей оператор кожен раз буде звертатися до поточного часу, яке, ясна річ, кожен раз змінюється (секунди все-таки б’ються).
Функція random
Взагалі-то, предвидущих вивчених функцій вистачає, що б написати різної складності програми, що використовують генератор випадкових чисел. Оператор random введений не так давно, причому в програмуванні на мові сі ++. Він укладає у собі кілька удосконалень: зріс діапазон значень; процес отримання випадкових чисел став ідеальним.
генератор випадкових чисел
програмування на мові сі
функція random