Почему у нас так странно падают предметы и точатся вещи?
-
Товарищи, закон больших чисел никто не отменял. Так что карта с тысячного моба это идеал, к которому стремится дроп.
Гадайте на кофейной гуще, чтоб выбрать момент для нажатия кнопки для заточки с +5 на +6 ;)) Бейте в шаманский бубен, пляшите ритуальные пляски, сгоняйте электроны в кучу. Может и поможет -
@Sasha-san:
вот блин математикиЛюди, не надо нас так яростно теорверу учить, тут же не школьники собрались.
По пунктам. Посчитайте вероятность того, что карта выпадет из 2 монстров подряд. История о таком должна быть одна, ну две максимум - за недолгую жизнь МОТРа... И одни должны быть легендами сервера.
У меня такого не было, но 2 раза я видел своими глазами, как это происходит. И историй таких слышал я немало - не меньше десятка.
А насчет ранвномерности распределения - если кто-то сможет в реальной жизни 10 раз подкинуть монетку, и все 10 раз выбить решку - я пожму его мужественную руку.
@Grif:
В теорвере шанс до испытания и после - две большие разницы.Угу, а с каждой рожденной девочкой шанс родить мальчика все больше и больше У независимых событий шанс стабильный, было испытание или нет.
@Grif:
Если взять случайные целые числа от 1 до 10^6, вытащить число 12345, а потом кричать "Как такое случилось, ведь шанс вытащить это плохое число был 0.0001% !!!" - то это тот же крик про заточку.Ты не путай, "плохое число" было известно наперед, и ВСЕ остальные были "хорошими" - твоей же терминологией.
Ну это все так, уже просто дискуссии для фана. Ясно, что ничего меняться не будет.
А дикая неравномерность генератора имеет место, и это видно буквально во всем - в работе флай вингов, в "групповом" выскакивании критов, в двойных-тройных ударах от монстров от которых 95% уворота...
Хотя, кто знает - возможно накал страстей игроков тому причиной... И никакие апгрейды генератора тут не помогут
-
Max Damage, "плохое известно наперед" - это как же ? Плохо - когда из 6 щапок сломалось 3 и более ? А хорошо - это когда из 6 заточились 5 или 6 ?
И из 6 шапок заточить только одну шанс вовсе не 0.15%, а в 6 раз больше, почти 1%. Можно подойти к вопросу заточки с другой стороны, 6 шапок, шанс успеха 0.7, среднее 60.7 = 4.2, дисперсия 60.7*0.3=1.26, тогда в 3-сигма вкладываются заточки от 0.83 предметов (считай от 1) до 7.6 (их всего 6, значит до 6). 3-сигма самое простое и действенное правило, и за его рамки случай не выходит, и кричать не надо, что рандом кривой.А про девочек и мальчиков - хоть шансы не зависят ни от чего, но попробуй из 100 родов вытащить 95 мальчиков
Про повторные каты, ты для начала посчитай, сколько карт выбивают, а потом прикинь, что на каждые 3.5к карт приходится 1 повторная. А для всяких порингов-сопор, там и того меньшее число карт на 1 двойную.
Шанс, что из N мобов выпадет одна и только одна карта(шанс p) равен aexp(-a), a=pN, шанс, что из тех же N мобов выпадет 2 подряд равен paexp(-2a), теперь в среднем a=1, и отношение шансов одинарные:двойные = 1/(p*e). -
Max Damage, По поводу карт могу сказать одно: я на прошлой неделе от нечего делать провоукнул 4 поринга и разорвал их брандишом.. получил 4 поринг карты я на полном серьезе говорю. А уж то, что винги кидают в три точки по кругу (и эти круги нарезаются раза по 4-5) так ето ни для кого не секрет, я думаю...
И еще, люди, не путайте пожалуйста математическую вероятность и машинную. Те "случайности", которые выдает программа, они совсем не те, что дает математический идеализированный рассчет... Хотя, при том количестве запросов к случайному числу, которые происходят при онлайне в 3,5к человек, машина должна выдавать воистинну случайное (!) число... а на деле выходит не так
-
Последняя фраза в тему. Си не юзал, но паскалевский генератор случайных чисел должен работать по тому же принципу Суть в следующем. Слабое место в вычислениях, это получение случайного числа - Random(x) Ведь если бы псевдослучайное число генерировалось удовлетворительно, не нужны были бы никакие длинные формулы, они призваны лишь скрыть недостатки генерации псевдослучайного числа. На деле, получаемый ряд чисел во многом зависит от изначальной инициации генератора(поэтому она должна быть только одна!) частоты обращения к генератору и скорости компьютера. То есть в вычислениях присутствуют данные снимаемые с системных часов или их эмулятора. Значит, если на быстром компе часто обращаться к генератору, то очень велика вероятность получения ряда одинаковых чисел. И тут нужно угадать, какой ряд наиболее вероятен Так что удача присутствует, кто-то может настроиться на нужную волну интуитивно и бомбить в нужное время в нужном месте. Наверно, разум тут только мешает.
-
Grif, сразу видно теор.вер. почти родной язык%)
-
Рад, что дисскусия не завяла, хотя вижу, что сторонников моей теории ни так уж и много Погрехи в моих рассуждениях тоже имеются, но для того и ум, чтоб думать, а не слепо верить в то или иное высказывание (высказывания товарища Спака тоже надо побвергать всяческого рода сомнениям, а не только мои :))
Sasha-san, как говорилось в одном замечательном фильме, "а вы собственно мужчина или женщина?"
@"Sasha-san":
вот блин математикиЯ правда, блин, математик по образованию Хотя это было давно и столь лихо оперировать, как некоторые, математичискими терминами и формулами не могу. Но кое-что еще помню Да и не к чему это, так как многие попросту не поймут.
@"Sasha-san":
если вероятность выпадения вещи с монстра 0.1 % это вовсе не значит что все попытки запоинаются и с тысячного монстра выпадет вещь.Вот в этом-то и прикол, что попытки все запоминаются И мало того! Они повторяются вновь и вновь Только происходит это не специально, а, как я уже писал, из-за того, что мы имеем последовательность, которая пытается собой подменить равномерное распределение. Очень жаль, что некоторые люди, которые знают тер.вер., не знают или не замечают, что в машинном представлении все несколько иначе: события зависимые, распределение неравномерное и ко всему циклически повторяется все.
@"Sasha-san":
во первых и переточенную вещь и рар можно купитьПоищи мои сообщения за недавнее время в разделе покупка! Я пытаюсь купить пару вполне ординарных вещей. Те же композиты +10 раньше в любое время суток можно было купить за 3кк. Вопрос, где они теперь? Может и тут мне кто-нибудь про правило 3-х сигм и дисперсию расскажет?
@"Sasha-san":
во вторых полагаться на закон больших чисел и делать много попытокЧтоб применять хоть какие-то законы у нас должна быть хотя-бы ни такой кривой генератор. Это все отлично работает, когда мы имеем дело с небольшими числами (в другом топике есть мой пример про 6-гранный и 10000-гранный кубик). Когда мы имеем дело с тем, что имеем, то тут могут быть такие кривые вещи, которые и есть
Кстати, у меня серьезное подозрение, что те, кто так рьяно защищает неравномерность всевозможных событий, просто давно уже научились использовать себе это на руку и их пугает перспектива, что это может изменится Если так, то надо и с другими поделится А то "бедный" Спакум за баланс "сражается", а некоторые втихую получают необоснованное приемущество!
Grif, конечно моя модель сферического коня в вакууме не отражает всех реалий функционирования данного сервера, но она представлена лишь для того, чтоб проиллюстрировать основные проблемы
Удивительно, но никого не испугало то, что в этой циклической последовательности, может быть меньшее количество событий, соответствующих положительному исходу при испытании! В том, что цикла тут нет, никто еще меня не переубедил. Он есть и это, фактически, подтвердил Спакум, назвав типа используемого генератора сл. чисел. Повторяю, так как это очень важно. Если (к примеру) цикл состоит из 30000 значений от 1 до 10000, из которых 1 встречается только один раз, то это значит, что реальная вероятность выпадения карты с шансом 0.01% будет 0.003(3)%!!!
@"Grif":
Про мизерный шанс именно той комбинации заточки (вроде 6 вещей на +5) - это уж совсем не в кассу. В теорвере шанс до испытания и после - две большие разницы. Если взять случайные целые числа от 1 до 10^6, вытащить число 12345, а потом кричать "Как такое случилось, ведь шанс вытащить это плохое число был 0.0001% !!!" - то это тот же крик про заточку.Ну, ладно Уел. Разумеется, есть определенная правда в твоих словах. Меня бы одинаково неустроила и поломка всех 6-ти шапок при заточке на +6, хотя данное событие намного более вероятно А менее вероятна только поломка 6 шапок при заточке на +5 Но в этом-то и прикол. И почему мне так "везет" именно тогда, когда я хочу поточить что-то, потратив кучу эли или ори?! А вот когда пытаюсь ГБ, крылышки там всякие выбить и где вероятность успеха аж 1% - мне клинически не везет!
Тебе, как самому большому любителю математикики, домашнее задание: подсчитать вероятность не заточить ни одной из 6-ти шапок на +6 при вероятности успеха заточки на +5 равной 0.7, а на +6 - 0.5 Насколько я понимаю, это задачка на условную вероятность, так как поломав одну шапку на +5 мы уже точно не поломаем её на +6
Max Damage, полностью согласен, что очень часто встречаются случаи, когда некоторые маловероятные события происходят одно за другим или с очень небольшим интервалом. Одно дело, когда на кубике 6 два раза выпадет и совсем другое - когда два раза выпадет вещь с вероятностью пусть даже 0.0005 (0.05%).
Далее буду говорить без бумажки Никаких премудростей с тер.вером, который я действительно хорошо подзабыл. Но кое-что любопытное мне пришло в голову и это должно быть понятно даже школьнику (не самому бестолковому, конечно :)).
Многие говорят, что у нас онлайн в 3.5к человек и потому случайность должна быть воистину случайной А я вам скажу, что именно такое БОЛЬШОЕ количество народу делает случайные события более зависимыми, что выглядит как выпадение редкого лута из пары мобов, убитых вподряд, и т.п.
Я думаю, что все знают про эффект, когда в кино у машины колеса как бы не крутятся, а она едет? Ясно, что это происходит тогда, когда частота вращения колес кратна частоте кадров - каждый кадр мы видим колесо в одном и том же положении.
Большинство из вас, мои уважаемые читатели, решили, что я слишком долго бил порингов и только докачавшись до 91-го уровня решил занятся чем-то еще Уверяю, что ваши опасения преждевременны Хотя я и вправду задумался
Тут имеется непосредственная аналогия с нашими "случайными" событиями. Колесо - это последовательность циклически повторяющихся значений. А мы, совершая каждый раз то или иное действие, попадаем в некоторую точку этого "колеса". Теперь сделаем пару предположений:
-
Редкие события по воле кривого генератора сгруппированы в какой-то части последовательности. Если за всю последовательность этих событи 2-3, то вполне вероятно, что они могут оказаться в 1/10 части этой последовательности (которую уже стало привычно считать колесом :))
-
Благодаря большому количеству людей, случайность их действий сглаживается. Т.е. каждую единицу времени 3.5к человек совершают примерно одинаковое количество всевозможных действий Это конечно нарушается, когда происходят какие-то массовые события. Например, если поступит сообщение, что дроп на серваке увеличили в 100 раз
-
Запросы от всех пользователей обрабатываются последовательно. Даже если мы захотим убить страшного монстра и получить за него сразу 99 уровень и 100ккк в качестве бонуса, то сначала обработается запрос от новиса 1-го уровня, который решил убить поринга
Так как просчет всех событий пробегает в цикле - мобы походили, пользователи мышкой подвигали, кнопочки нажали, то можем предположить, что в некоторый момент времени мы будем попадать в ту часть последовательности из первого предположения, где сгрупированны редкие события. И тогда именно для нас вероятность выпадения какого-нибудь рара возрастает в 10 раз. Но нам-то это и надо. Гораздо хуже и гораздо более вероятно, что мы будем попадать в оставшиеся 90% последовательности, где ни из какого моба рар нам не светит
ЭТО БЫЛО НЕ ПРАВИТЕЛЬСТВЕННОЕ ЗАЯВЛЕНИЯ ИЛИ НОВАЯ АКСИОМА ТЕОРИИ ВЕРОЯТНОСТИ. ЭТО БЫЛА ЛИШЬ ПОПЫТКА РАЗОБРАТЬСЯ В СТРАННАСТЯХ ПОВЕДЕНИЯ СЕРВЕРА.
Могу лишь добавить, что для подобного рода игр выбор генератора случайных чисел имеет огромное значение! И никак не допустимо использовать самый элементарный из существующих, только лишь бы он работал быстрее.
Если у меня дойдут руки смоделировать поведение данного генератора, то я обязательно напишу об этом. Если кому не лень, то может сам попробовать. Надо всего лишь сгенерировать достаточно большое количество чисел (именно таким генератором) от 1 до 10000 и подсчитать отношение выпадения "1" к общему количеству испытаний. Не удивлюсь, если это будет нечто сильно отличное от 0.0001
-
-
Я решил сам всё же задачку про заточку решить Но сначала про еще одну несуразицу.
@Grif:
И из 6 шапок заточить только одну шанс вовсе не 0.15%, а в 6 раз больше, почти 1%Во-первых, я из 6-ти ни одной не заточил! Именно об этом речь. А во-вторых, из одной шапки заточить одну шанс 35%! А уж из 6 куда больше.
-
Вероятность заточить что-то на +6 со скилом WR10 равна 0.35. Следовательно вероятность сломать - 0.75. Вероятность поломать все 6 штук предметов будет 0.75^6=0.18 (18%)
-
Распределение случайных чисел от 0 до 9999
Вот код С программы
[code:23bhf33q]
#include <stdio.h>
#include <stdlib.h>#define NUM 10000
int main(){
long int *arr, i, mid, j;
double sum;arr = (int*)malloc(sizeof(int)*NUM);
if(arr == NULL){
printf("malloc failed\n");
return 1;
}for(i = 0; i < NUM; i++){
arr** = 0;**
** }**
** while(arr[0] < 1E6){**
** arr[rand()%NUM]++;**
** }**
** sum = 0.;**
** for(i = 0; i < NUM; i ++){**
** sum += arr**;**
** }**
** for(i = 0; i < NUM; i ++){**
** printf("%li\t%f\n", i, arr**/sum*NUM);**
** }**
** return 0;**
}
[/code:23bhf33q]
Ядро программы здесь:
[code:23bhf33q]
** while(arr[0] < 1E6){**
** arr[rand()%NUM]++;**
** }**
**[/code:23bhf33q]
**
**Т.е. Считается сколько каких чисел выпадает.
**
**Затем нормируется на сумму всех чисел и умножается на число элементов, чтоб среднее значение было 1.
**
**
**
**Вот распределение:
**
**
**
**
**
**Резкий скачек происходит с 2767 на 2768
**
**Среднее до скачка 1.221, после 0.916.
**
**
**
Может что-то зависит от машинки ? У меня рандом генерит от 0 до 32767. -
Grif, как я понял, испытания проводятся пока первого элемента не наберется в количестве 100000 штук (по-моему так нагляднее, нежели 1E6).
Не совсем понятно, почему именно такое условие, но, вроде, оно не хуже всех остальных и на достоверность результата не влияет
Никаких ошибок я не нашел в программе. И если их действительно нет, то полученный результат наводит на мысли. Один резкий скачек чего стоит. Хотя в том виде, что получился у тебя, нам это даже на руку. Но, как я понял, генератор может выдавать различные последовательности в зависимости от первоначальной инициализации. Ты бы попробовал его переинициализировать и несколько раз посчитать всё это.
Кстати, я почти уверен, что на нашем серваке такой же генератор. И он дает столь короткий цикл (32767 элементов). При диапозоне случайных величин от 1 до 10000 - этот генератор вообще не годится.
Прикол в том, что график может выглядеть с точностью до наоборот. Т.е. маленьких значений меньше чем больших и скачек может быть более резким.
Еще неплохо было бы, если бы видеть выпадение цифры 1 в динамике. Группируются единички или выпадают примерно через одинаковое количество испытаний.
P.s. Ты чем график строил? Excel?
-
Grif, молчи блин !
ты понимаешь что этот глюк игрокам только на руку, редкие вещи (% меньше 7,67 ) и события происходят чуть-чуть чаще )))
я вот лично знал о том что у нас так, просто почитав код атены, из теоретических соображений ))
правда думал что скачок происходит на 535 (а оказывается rand не до 65535 а до 32767)
:!: кстати ты уверен что на сервере используется такая же C-библиотека как у тебя?для тех кто не понял почему такой график - rand выдаёт значения равномерно но в коде атены для вычисления наступления событий используются условия типа if (rand() % 10000 < rate)
допустим максимальное число выдаваемое rand - 32767
тогда число меньше 767 будет получаться 4 разными спобобами а больше 767 - тремя
но график сероятности получить (rand() % 10000 < rate) всё равно будет не такой как нарисовано, плавный, без ступеньки. будет не лень - нарисуюполюбому это не совсем в тему сообщения, и к "неравномерности" не имеет отношения
-
Во-первых, я из 6-ти ни одной не заточил! Именно об этом речь. А во-вторых, из одной шапки заточить одну шанс 35%! А уж из 6 куда больше.
ещё раз, тебе не повезло. вероятность обломаться с 6 попыток не равна 0 и с тобой это произошло. если взять статистику по всем заточкам за неделю, то уверен, все вероятности будут в пределах погрешности.
а то что не повезло именно тебе... поверь никаких преференций кому-то в коде нет, просто боги к тебе немилостливы
-
@Sasha-san:
если вероятность выпадения вещи с монстра 0.1 % это вовсе не значит что все попытки запоинаются и с тысячного монстра выпадет вещь.Вот в этом-то и прикол, что попытки все запоминаются И мало того! Они повторяются вновь и вновь Только происходит это не специально, а, как я уже писал, из-за того, что мы имеем последовательность, которая пытается собой подменить равномерное распределение.
любой генератор псевдослучайных чисел именно что пытается выдать вовсе не случайную последовательность которая тем не менее имеет такое распределение, что вполне пожет "подменить" действительно случайную для практических целей.Удивительно, но никого не испугало то, что в этой циклической последовательности, может быть меньшее количество событий, соответствующих положительному исходу при испытании! В том, что цикла тут нет, никто еще меня не переубедил.
пугать никого не надо, знание - сила, незнание - страх.значит попытаюсь ответить аргументированно, во первых предположим что генератор псч ИМЕЕТ последовательность (скорее всего это так) и через некоторое время просто выдаёт энное число из таблички содержащей 32к чисел
и исход фактически хависит от порядкового номера числа в таблицетем не менее между двумя попытками вызова генератора, которые приходятся лично на тебя происходят тысячи его вызовов для рассчёта других пользователей. сотни людей круглосуточно бьют монстров а расчёт различных шансов происходит по нескольку раз за 1 удар.
то есть тот самый порядковый номер - это и есть истинно случайное число зависящее от нажатий кнопок тысячами пользователей и от сетевых лагов по всему миру.поскольку последовательность (деже если она есть) довольно таки хаотичная (это всё можно проверить) и благодаря ещё некоторым условиям (даже зная что rand%10000 равно 0 ты не знаешь выпало ли из rand 0 или 20000) предсказать исход следующего испытания невозможно
Я думаю, что все знают про эффект, когда в кино у машины колеса как бы не крутятся, а она едет?
аналогия совершенно неправильная. в кино оба процесса (вращение колеса и съёмка кадров) происходят с очень хорошей периодичностью, без дрожания.если колесо (равномерно вращающееся) освещать вспышками в случайные моменты времени то оно будет выглядеть размазанным.
осталось только 2 вопроса. во первых действительно ли на сервере период равен32к или 65к или, возможно 2ккк или же библиотека использует системный rand накапливающий истинно случайные события
и во вторых ЕСЛИ там период 32к можно потестить насколько равномерно эти числа распределены.. а то возможно чисел отвечающих за событие с вероятностью 0.01% слишком мало (или слишком много и не жалуйтесь потом если это пофиксят ^_^ )
-
По пунктам. Посчитайте вероятность того, что карта выпадет из 2 монстров подряд. История о таком должна быть одна, ну две максимум - за недолгую жизнь МОТРа... И одни должны быть легендами сервера.
к слову ДОЛЖНА у меня есть претензии
И историй таких слышал я немало - не меньше десятка.
а может всё же посчитать? вероятность выбить 2 карты подряд - 1 на 10^8. а сколько монстров убито за историю сервера?
по моим оценкам в час более миллиона то есть такое событие как выпадение 2 карт подряд может случаться раз в неделю и это совершенно нормально.А насчет ранвномерности распределения - если кто-то сможет в реальной жизни 10 раз подкинуть монетку, и все 10 раз выбить решку - я пожму его мужественную руку.
за 100 баксов и пиво возьмусь тебе это продемонстрировать, скорее всего за день управлюсь хоть и задолбаюсь ))
понимаешь, то что вероятность мала не даёт никаких ГАРАНТИЙ что это не произойдёт с первого раза, 5 раз подряд или если оно только что произошло то не произойдёт опять. или если оно не происходило давно то произойдёт скоро.
вероятность каждый раз одинаковая -
Sasha-san, я вижу, что мы совместными усилиями много добьемся В том числе, генератор исправят и карты будут падать еще реже ;))
Только в твоем объяснении имеется ошибочка. Ступенька в графике получается не для значений больше 767, а значний больше 2767 (а это уже соответствует 27.67%). За исключением сего бага мы имеем более-менее равномерное распределение, что даже удивительно
Мне лично кажется, что именно эту вещь давно пофиксили. Видимо в тот момент вещи стали выбиваться и точится реже! Именно потому, что раньше было как на графике, а сейчас иначе.
Жалко, что никто не хочет признаваться в реальном положении вещей
В заключении хочу сказать, что совсем не сложно сделать генератор намного более случайным. Как я уж предлагал, можно просто периодически менять параметры генератора на основе случайных временных интервалов. Нельзя же предсказать кто когда кнопочку нажмет или мышкой кликнет?! Вот эти значения и юзать.
-
@"ieshua":
Только в твоем объяснении имеется ошибочка. Ступенька в графике получается не для значений больше 767, а значний больше 2767 (а это уже соответствует 27.67%). За исключением сего бага мы имеем более-менее равномерное распределение, что даже удивительно
о, точно. только поскольку там проверка не if ( rand () % 10000 == rate)
а if ( rand () % 10000 < rate) то график надо проинтегрировать ))
а чтобы узнать во солько раз изменилась вероятность - на неё поделитьтолько ещё раз обращаю внимание, это зависит от использованной C-библиотеки. в нормальных юниксах (только что проверил)
#define RAND_MAX 0x7fffffffи период там 2^32 и генератор нелинейный