Обсуждение:Рандом
Материал из 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 (ну вы поняли, ага?). И забейте на Вики, думайте своими мозгами, пожалуйста.
- Любое распределение легко и непринужденно делается из равномерного. А нормальное распределение - ни разу ни сумма 2 бросаний кубиков, а предел n сумм рандома с любым законом распределения (но все n должны быть одинаковыми) при n стремится к бесконечности, это и есть центральная предельная теорема. На практике используется сумма 5-12 случайных величин, распределенных равномерно.
А причем тут реализация функции 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, т.к. это - ГСЧ, рассчитаный на использовании в криптографии, а там требования к СЧ повыше говноигр.