Конспекти лекцій та Лабораторні роботи з дисципліни "Алгоритми та структури даних" для III курсу спеціальності 121 "Інженерія програмного забезпечення" ОКР "Фаховий молодший бакалавр" Херсонського політехнічного фахового коледжу Державного університету "Одеська політехніка"
Алгоритм генерації | Рік створення | Автор/Компанія | Основне призначення | Довжина генерації (біти) | Приклад виходу | Особливості |
---|---|---|---|---|---|---|
Linear Congruential Generator (LCG) | 1949 | Derrick Henry Lehmer | Стандартний генератор PRNG | Змінна | 0.123456 (нормалізований) |
Простий у реалізації, але поганий період для великих систем. |
Mersenne Twister | 1997 | Makoto Matsumoto, Takuji Nishimura | Статистика, моделювання | 19937 | 5489 2113 2592 4245 |
Дуже довгий період, високоякісний генератор для наукових цілей. |
Xoroshiro128+ | 2016 | David Blackman, Sebastiano Vigna | Високошвидкісне моделювання | 128 | 42 13 55 88 |
Швидкий і ефективний для багатопотокових систем. |
Xorshift | 2003 | George Marsaglia | Швидкісне моделювання | Змінна | 78422393 |
Висока швидкість, але середня якість випадковості. |
Middle Square Method | 1949 | John von Neumann | Початковий PRNG | Змінна | 3741 |
Проста концепція, але швидка деградація якості при довгих обчисленнях. |
Blum Blum Shub | 1986 | Lenore Blum, Manuel Blum, Michael Shub | Криптографія | Змінна | 011010... (бітові послідовності) |
Дуже безпечний, але повільний через складність реалізації. |
Lagged Fibonacci Generator (LFG) | 1958 | Peter Lewis | Моделювання, статистика | Змінна | 0.51423 (нормалізований) |
Базується на Фібоначчі, використовується в моделях Монте-Карло. |
CryptGenRandom | 1998 | Microsoft | Криптографія, безпека | 128 | 5F3F0C4D-76B5-4A2A-93B8 |
Використовується в Windows для генерації криптографічно стійких чисел. |
Fortuna | 2003 | Bruce Schneier, Niels Ferguson | Криптографія | Змінна | A1B2C3D4... |
Надійний криптографічний генератор, розроблений для високої безпеки. |
WELL (Well Equidistributed Long-period Linear) | 2006 | François Panneton, Pierre L’Ecuyer | Моделювання, статистика | 512, 1024, 19937 | 01234567... |
Поліпшення Mersenne Twister з кращими характеристиками для великих систем. |
ChaCha20 | 2008 | Daniel J. Bernstein | Криптографія | 256 | C3D2E1F0... |
Використовується в сучасних системах шифрування для генерації ключів. |
ISAAC (Indirection, Shift, Accumulate, Add, and Count) | 1996 | Robert Jenkins | Криптографія, ігрові системи | 32–64 | A123BCD0 |
Дуже швидкий та стійкий до атак. |
Random123 | 2011 | John Salmon et al. | Паралельні обчислення | Змінна | 0xAABBCCDDEEFF0011 |
Створений для паралельних і розподілених систем. |
PCG (Permuted Congruential Generator) | 2014 | Melissa O’Neill | Загальні обчислення, моделювання | Змінна | 42 76 59 21 |
Висока якість випадковості, проста реалізація. |
SecureRandom | 1990-х | Sun Microsystems | Криптографія | Змінна | AD12FE340 |
Використовується в Java для генерації криптографічно безпечних чисел. |