Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Отримання псевдовипадкових чисел

Реферат Отримання псевдовипадкових чисел





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

) НОД (c, m)=1 (тобто c і m взаємно прості)

) a - 1 кратно p для всіх простих p - дільників m;

) a - 1 кратно 4, якщо m кратно 4.

Статистичні властивості одержуваної послідовності випадкових чисел повністю визначаються вибором коефіцієнтів a і c.


Метод Фібоначчі

Цікавий клас генераторів псевдовипадкових послідовностей заснований на використанні послідовностей Фібоначчі. Класичний приклад такої послідовності {0,1,1,2,3,5,8,13,21,34 ...} - за винятком перших двох її членів, кожний наступний член дорівнює сумі двох попередніх.

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

У зв'язку з цим лінійний конгруентний алгоритм поступово втратив свою популярність, і його місце зайняло сімейство Фібоначчієва алгоритмів, які можуть бути рекомендовані для використання в алгоритмах, критичних до якості випадкових чисел. В англомовній літературі Фібоначчієва датчики такого типу називають зазвичай Subtract-with-borrow Generators (SWBG).

Найбільшу популярність Фібоначчієва датчики отримали у зв'язку з тим, що швидкість виконання арифметичних операцій з речовими числами зрівнялася зі швидкістю цілочисельний арифметики, а Фібоначчієва датчики природно реалізуються у речовій арифметиці.

Один з широко поширених Фібоначчієва датчиків заснований на наступній итеративной формулою:


=


де - дійсні числа з діапазону [0,1), a, b - цілі позитивні числа, звані лагами. Для роботи Фібоначчієва датчику потрібно знати max {a, b} попередніх згенерованих випадкових чисел. При програмної реалізації для зберігання згенерованих випадкових чисел використовується кінцева циклічна чергу на базі масиву. Для старту Фібоначчієва датчику потрібно max {a, b} випадкових чисел, які можуть бути згенеровані простим конгруентним датчиком.

Лаги a і b - магічні і їх не слід вибирати довільно. Рекомендуються наступні значення лагів: (a, b)=(55,24), (17,5) або (97,33). Якість одержуваних випадкових чисел залежить від значення константи, a чим воно більше, тим вище розмірність простору, в якому зберігається рівномірність випадкових векторів, утворених з отриманих випадкових чисел. У той же час, зі збільшенням величини константи a збільшується обсяг використовуваної алгоритмом пам'яті.

Значення (a, b)=(17,5) можна рекомендувати для простих додатків, що не використовують вектори високої розмірності з випадковими компонентами. Значення (a, b)=(55,24) дозволяють отримувати числа, задовільні для більшості алгоритмів, вимогливих до якості випадкових чисел. Значення (a, b)=(97,33) дозволяють отримувати дуже якісні випадкові числа і використовуються в алгоритмах, що працюють з випадковими векторами високої розмірності. Отримувані випадкові числа володіють хорошими статистичними властивостями, причому всі біти випадкового числа рівнозначні за статистичними властивостями.


Вихор Мерсенна

Вихор Мерсенна (Mersenne twister) - це генератор псевдовипадкових чисел, заснований на властивостях простих чисел Мерсенна і забезпечує швидку генерацію високоякісних псевдовипадкових чисел. Вихор Мерсенна позбавлений багатьох недоліків властивих іншим ГПСЧ таких як малий період, передбачуваність, легко виявляється статистична залежність.

Вихор Мерсенна є Віткової регістром зсуву з узагальненої віддачею (twisted generalised feedback shift register, TGFSR). Вихор - Це перетворення, яке забезпечує рівномірний розподіл генеруються псевдовипадкових чисел в 623 вимірах (для лінійних конгруентних генераторів воно обмежене 5-ю вимірами). Тому кореляція між послідовними значеннями у вихідний послідовності Вихора Мерсенна пренебрежимо мала.

Вихор Мерсенна має величезний період, а саме, доведено, що його період дорівнює числу Мерсенна 219937? 1, що більш ніж достатньо для багатьох практичних застосувань.

Існують ефективні реалізації Вихора Мерсенна, що перевершують за швидкістю багато стандартні ГПСЧ (зокрема, в 2-3 рази швидше лінійних конгруентних генераторів). Алгоритм заснований на наступному рекуррентном вираженні:


=+ () A, (k=0,1,2 ...)


де n - ціле, яке позначає ступінь рекурентності, - ціле, 1 l...


Назад | сторінка 2 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Генерація випадкових чисел
  • Реферат на тему: Проектування генератора істинно випадкових чисел для криптографічних додатк ...
  • Реферат на тему: Рішення задач цілочисельний арифметики (пошук дільників і простих чисел)
  • Реферат на тему: Генератор простих чисел
  • Реферат на тему: Побудова простих великих чисел