Обсуждение:Рандом

Материал из Lurkmore

Перейти к: навигация, поиск
Нормального распределения там и не надо. Надо распределение Бернулли. Но его тоже нет. C любовью, ваш Капитан Очевидность
эээ, вроде бы от рандомизаторов обычно требуется равномерное распределение с возможно большей независимостью последовательных значений. Это я чего-то не понимаю или К.О. здесь фейковый?
Просто равномерное распределение — штука абстрактная ибо оно непрерывное, так что на самом деле используется дискретное биномиальное. А Бернулли это частный случай биномиального. Впрочем, как человек имеющий к ММОРПГ непосредственное отношение могу сказать, что игроки всегда будут обвинять рандом в кривизне, даже если он нормальный. А «как можно большая независимость последовательных значений» это ересь, ибо все испытания должны быть независимыми, иначе это уже не рандом. Хм, может это в обсуждение сунуть?
Игроки всегда во всем обвиняют рандом. Многие считают, что "раз столько раз сфейлилось, то щас уж точно проканает, там же ХХ% шанс", забывая, что рандом никому и ничего не должен, а следующий результат какбэ не зависит от предыдущего. Алсо, любой школьник может написать на любом доступном ему языке код, выдающий в цикле овер 9000 рандомных "да/нет" (псевдо, но кого это волнует?), и лично убедиться, что получить подряд туеву хучу "нет" очень даже возможно. Добавлю также, что конкретно в сервере л2 рандом не самописный, там обычный библиотечный rand().

к.о. считает, что теория относительности говорит, что шанс выпадения любого числа в оной таблице равен 50% в каждый момент времени: либо выпадет, либо нет... то-есть, шанс выпадения любого числа всегда в два раза меньше, чем ожидается, что кагбэ намекает быдлоколдинг

Есть мнение, что в ММОРПГ шанс выпадения редких предметов обратно пропорционален числу игроков в данный момент на сервере. Т.е. ночью, когда онлайн только задроты/боты, падает/спойлится лучше.

Содержание

Срачи из примечаний

К.О. замечает, что не везде нужно именно равномерное распределние. Значительно чаще в реальном мире встречается w:нормальное распределение, а виной всему — w:центральная предельная теорема. Кстати, если один кубик дает равномерное распределение, то сумма двух кубиков уже подчиняется нормальному распределению. Но сути корейского рандома это не меняет.

ЩИТО? Сумма двух кубиков есть дискретная случайная величина, а нормальное распределение непрерывно.


Капитан Очевидность забывает, что нормальное распределение получают как раз из равномерного w:Преобразование_Бокса_—_Мюллера, да и любые другие тоже. Читайте Кнута, блджад.

K.O. преобразование - метод, нормальное (гауссово) распределение - результат. И получить нормальное распеределение можно в том числе и бросанием пары костей. Так то.
Любое распределение легко и непринужденно делается из равномерного. А нормальное распределение - ни разу ни сумма 2 бросаний кубиков, а предел n сумм рандома с любым законом распределения (но все n должны быть одинаковыми) при n стремится к бесконечности, это и есть центральная предельная теорема. На практике используется сумма 5-12 случайных величин, распределенных равномерно.
Пиздец, нашли из-за чего говнами пуляться. Критерии Пирсона и Стюдента дают для 2 кубиков отрицательный результат — довольны? Дял трёх — положительный; так что анонимус №5 абсолютно прав про ЦПТ, и нехер ебать мозги своими формализмами. Что же касается генераторов, то в программировании и по сей день не умер православный X(p):=q*sqrt(-2ln(sqrt(2*pi)*p*q))+a (ну вы поняли, ага?). И забейте на Вики, думайте своими мозгами, пожалуйста.

А причем тут реализация функции rand() на клиентской стороне? Функция на серверной стороне работает как бе. В игровом клиенте только кнопку нажимают, посылается запрос серверу или получаем ответ, положительный или отрицательный.


Вавилонская лотерея

/r/ запилить в статью Коркиса-Боркиса. Он доставляет.

Вынесенный из статьи высер

Рандом есть результат случайного события, случайное событие в свою очередь есть событие, исход которого оценивающее лицо, не может предвидеть. Есть случаи с нежеланием предвидения, но это отдельная статья. Таким образом рандом может для одного быть нормальным явлением, а для другого полноcтью непредсказуемая система... но это уже больше не Рандом, а его восприятие человеком...

В этих ваших компьютерах существует некое подобие рандома, которое ругают псевдо-рандомом. Псевдо-рандом генерится при помощи жуткого матана, и имеет некоторые недостатки:

  • Периодичность - через определенное количество случайных событий они начинают повторяться.
  • Некоторые значения в пределе более случайны чем другие... допустим единицы меняются от вызова к вызову часто, а сотни редко.
  • Неравномерность - например числа до 100 выпадают реже чем числа после 100

Все это от того, что компьютер не бросает кубик, а вычисляет псевдо-случайную величину по определенной умным пиндосом очень точной формуле.

Существуют также другие аналоги рандома:

  • Запрос миллисекунд у биоса на момент надбности рандома - в принципе идея хорошая, но если рандом требуется в течении секунды много раз то недостаток очевиден, второе число будет больше первого, я обещаю. (не будет - например, первый запрос произошел в 997мс, а следующий через скажем через 50мс выдаст уже 043)(а вот если вызывать 25 раз в секунду(например один раз в главном цикле), то в 24 случаях будет)
  • Внесение изменений в жуткий матан согласно действиям юзера - такой способ слишком быстро пропаливается пытливыми умами и троллится по полной.

В далекие деревянные времена бейсика прописанного в ПЗУ последовательно брались байты самой программы, а командой Randomize устанавливали по миллисекундам таймера с какого места программы начинать. Но это было давно и совсем уже неправда.

Аппаратные рандомы существуют, но засекречены. И для нормальных компьютеров их почему-то не выпускают. Вероятно они скрывают в себе формулу мира. Так-то! Правда, программер-кун подсказывает, что аппаратные рандомы аля Hardware RNG как минимумом Intel-ом включены во все процессоры, начиная с Pentium III - насладиться труевыми рандомными числами теперь может любой желающий. Также некоторые аноны ВНЕЗАПНО научились извлекать случайные числа из АЦП звуковой карты компьютера. Вот так-то!

Капитан Физика срывает покровы с сов.секретных технологий ZOG и утверждает, что сделать близкий к идеалу ГСЧ под силу любому умеющему паять и быдлокодить. Основываются они на неконтролируемых физических процессах, например:

  • Поверхность кипящей жидкости
  • Траектория электрической искры
  • Распад радиоактивных веществ
  • Шумы в радиоэфире
Можно запилить в ссылки в статье - ГСЧ на основе атмосферных шумов. Да счас и запилю, ёпта.

При этом через определенные или тоже случайные промежутки времени (тут сойдет и программный рандом, поскольку его роль вторична) камера снимает кипяток/искру, подсчитывается количество разрядов в счётчике Гейгера или снимается осциллограмма шума. Для пущего разброса данных и приведения в удобный для обработки вид, результат скармливается хэш-функции - и близкий к идеалу рандом, тащемта, готов.

Штабс-капитан Монте-Карло добавляет, что описанным выше способом не пользуются потому, что трудно добиться достаточного количества случайных чисел в единицу времени. Эдак вам придется кипящими чайниками заставить небольшое кукурузное поле, гектаров на надцать. Во взрослой науке (например, КХД на решетках) требуются миллионы случайных значений в секунду. Есть, конечно, лаборатории, где действительно стоит туева хуча датчиков и идут реальные случайные процессы. Но результаты, которые они получают, по сути слабо отличаются от аналогичных, полученных благодаря грамотно сделанному алгоритму рандома. При этом на их получение уходит в десятки раз больше времени. Вот и приходится напрягать мозг, а не строить квадратно-гнездовым методом сотни установок-генераторов случайных чисел.

Иллюстрация

Есть же такой костыль в медиавики, идеально подойдет для иллюстрации. Но это к администрации, куда стучать?

Игры-игрочки

Доставляющий рандом из Великой и Ужасной Цивы: Из-за примитивной системы боя между юнитами, зависящей больше всего от рандома, Танки запросто могут проиграть Колесницам.

Плагиат детектед

Признавайтесь, кто заслал эту статью на конференцию "Молодежь и наука"? [1]

анон, ты доставил! Innominatus

Алсо

Рандом в Dot'A подобных играх - это распределение, которое неравно. То есть в одной команде игроки слабее, в другой - сильнее.

Windows

Ходят упорные слухи, что это связано с неадекватной работой программного RND Windows.

Авторитетно заявляю - хуета, если исползуется, конечно, CryptGetRandom, т.к. это - ГСЧ, рассчитаный на использовании в криптографии, а там требования к СЧ повыше говноигр.

Тут полежит

картинко