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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Генератор випадкових чисел (англ. Random number generator; часто скорочується як RNG, ГВЧ) — обчислювальний або фізичний пристрій, спроектований для генерації послідовності номерів чи символів, які не відповідають будь-якому шаблону, тобто є випадковими. Широко використовуються комп'ютерні системи для генерації випадкових чисел, але часто вони малоефективні. Ці функції, можливо, забезпечують достатньо випадковості для певних завдань (наприклад, для відеоігор), але є непридатними в тих випадках, коли потрібна «високоякісна випадковість», як, наприклад, у криптографічних програмах, статистиці або чисельному аналізі. Методи добування випадкових результатів існували здавна, зокрема, використання гральних костей, підкидання монети, тасування ігрових карт та ін.

Існує багато різних методів отримання випадкових даних. Ці методи можуть відрізнятися тим, які непередбачувані чи статистично випадкові дані вони видають, а також як швидко вони можуть генерувати випадкові номери.

До появи обчислювальних генераторів випадкових чисел, для отримання великої кількості достатньо випадкових номерів (важливо в статистиці) треба було багато роботи. Результати іноді узагальнювали й розповсюджували як таблиці випадкових чисел.

Класифікація генераторів випадкових чисел[ред.ред. код]

Виділяють такі класи датчиків (генераторів) випадкових чисел:

Табличний датчик випадкових чисел[ред.ред. код]

Являє собою таблицю заповнену реалізаціями випадкової величини з заданим розподілом. Представлені у таких таблицях вибірки дуже якісні, та вони мають обмежений розмір. Та і кількість таких вибірок невелика, що суттєво обмежує їх використання.

Фізичний датчик випадкових чисел[ред.ред. код]

Конструюється на основі певного електронного пристрою, на виході якого спостерігають потрібну реалізацію випадкової величини. Ці генератори дозволяють отримувати вибірку довільного обсягу, та вони мають інший недолік - кожна отримана вибірка унікальна, і її неможливо повторити. Зате наступний клас генераторів не має цього недоліку:

Програмний датчик випадкових чисел[ред.ред. код]

будується на базі деякої програми, на виході якої формується потрібна реалізація. Ці програми зазвичай базуються на деякій рекурентній формулі. Задаючи однакові початкові члени послідовності можна щоразу отримувати однакові послідовності. Та ці генератори в свою чергу мають інший недолік - вони періодичні. Числа які вони генерують називають "псевдовипадковими" бо вони отримуються за чітким детермінованим алгоритмом.

Посилання[ред.ред. код]