Этот пост — рассказ об истории, случившейся больше десятка лет назад; её код был мной утерян. Поэтому прошу простить меня, если я не вспомню точно все подробности. Кроме того, некоторые подробности упрощены, чтобы от этой статьи могли получить удовольствие все, кому нравится компьютерная безопасность, а не только любители World of Warcraft (хотя, полагаю, диаграмма ВеннаЧитать полностью »
Рубрика «генераторы случайных чисел»
Когда Random совсем не случаен
2024-01-19 в 6:45, admin, рубрики: Lua, RNG, world of warcraft, взлом, генераторы случайных чисел, обратная разработкаИстория алгоритмов рандомизации «Тетриса»
2019-09-09 в 4:49, admin, рубрики: random number generator, tetris, генераторы случайных чисел, генерация случайных чисел, Дизайн игр, Игры и игровые приставки, разработка игр, рандомизация, реверс-инжиниринг
В 1985 году Алексей Пажитнов и Вадим Герасимов выпустили в свет Tetris. Эта увлекательная и вызывающая сильное привыкание игра требовала от игроков соединять фигуры, появлявшиеся в случайном порядке. С того времени было выпущено более 150 лицензионных версий «Тетриса». Отличаясь игровыми режимами, правилами и реализацией, все они игрались слегка (или очень) по-разному. Рандомизатор «Тетриса» — это функция, возвращающая случайно выбранную фигуру. На протяжении многих лет правила выбора фигур эволюционировали, оказывая влияние на геймплей и саму случайность. Некоторые из этих алгоритмов были подвергнуты реверс-инжинирингу и задокументированы. Я составил список рандомизаторов, которые считаю важными, и покажу в статье, как с годами менялось внутреннее устройство «Тетриса».
Читать полностью »
Генераторы дискретно распределенных случайных величин
2016-01-15 в 22:54, admin, рубрики: Алгоритмы, генераторы случайных чисел, дискретное распределение, математика, Программирование, случайная величина, случайности не случайны, теория вероятностей, метки: генераторы случайных чисел, случайная величинаДанная статья является продолжением поста Генераторы непрерывно распределенных случайных величин. В этой главе учитывается, что все теоремы из предыдущей статьи уже доказаны и генераторы, указанные в ней, уже написаны. Как и ранее, у нас имеется некий базовый генератор натуральных чисел от 0 до RAND_MAX:
unsigned long long BasicRandGenerator() {
unsigned long long randomVariable;
// some magic here
...
return randomVariable;
}
С дискретными величинами все интуитивно понятнее. Функция распределения дискретной случайной величины:
Несмотря на простоту распределений дискретных случайных величин, генерировать их подчас сложнее, нежели чем непрерывные. Начнем, как и в прошлый раз, с тривиального примера.