Почему у нас так странно падают предметы и точатся вещи?
-
Я уже устал от этой ситуации, когда вещи, которые падать должны часто, падают редко. А иногда как начнут падать, что выпадает две вещи с вероятностью 0.05% с интервалом 10 минут. Это говорит о том, что случайные числа выпадают неравномерно. Потому можно 10 лет выбивать какую-нибудь редкую вещь, а она не выпадет, так как числа будут выпадать не те в принципе. Например, если вероятность от 0 до 1 и в 90% случаев будет выпадать число больше 0.5, ясно, что карта уже выпадет далеко не с вероятностью 0.01. Хотя возможно и обратное.
Буквально сегодня я пики выбивал из вормтейлов. Так мне часа за 2 всего 1 выпала и куча всего остольного, включая два камня с вероятностью 0.05%. А поздней ночью вдруг выпало 4 пики буквально за 20 минут. Удача-удачей, но логика должна быть. Уж очень часто бывает так, что рарные вещи то совсем не падают, то падают с небольшим интервалом. Это явно сведетельствует, что выпадение предметов устроено либо не простой генерацией случайного числа, либо этот генератор настолько кривой, что не способен выдавать последовательность случайных чисел с равномерной распределенностю.
С заточкой еще хуже (у кого-то может и лучше, конечно). Как-то я решил с помощью знакомого кузнеца поточить cap[1]. Разумеется скил WR10 и шапку отлично видно, когда она ломается. Так 5 шапок из 6 сломалось при заточке на +5 и только одна при заточке на +6. В итоге я не смог заточить шапку вообще. Удача-удачей, но это как же мне повезло, что при вероятности 70% (!!!) поламалась такая куча вещей. А это легко подсчитать.
Вероятность (напоминаю, что в математике это число от 0 до 1) заточить шапку на 5 со скилом WR10 равна 0.7, на 6 - 0.70.5=0.35. Кстати, это значит, что кузнец при заточке вещей должен точить на +6 каждую третью вещь (приблизительно). События у нас независимые, потому вероятность того, что со мной случилось можно изобразить так: 0.30.30.30.30.30.65 = 0.0015795 (это произведение вероятностей сломать 5 раз шапку при заточке на 5 и одного раза при заточке на 6). Если в процентах, то это будет примерно 0.16%
Получается, что мне просто нереально "повезло". Шанс получить именно то, что я получил 0.16%! И самое любопытное, что такое "везение" встречается сплошь и рядом. Повод хорошенько задуматься. Именно этим я сейчас и занимаюсь, кстати. Очень сильно хотелось бы услышать, что скажут люди отвечающие за работу сервера и в частности САМ.
-
0.16% это шанс заточит с нуля до +5
-
@maddoom16:
0.16% это шанс заточит с нуля до +5вообще-то, с WR10 шанс заточить с нуля до +10 равен 0.315%
-
Господа, вы все не в тему! Я говорю не о заточке вещей на +10. А о том, что даже на +6 заточить проблема. А там вероятность 0.35% с WR10.
maddoom16, а ты, прежде чем такое писать и людей с пути истинного сбивать, сначала посмотри эту таблицу: <!-- m --><a class="postlink" href="http://rodatazone.simgaming.net/items/upgrading.php">http://rodatazone.simgaming.net/items/upgrading.php</a><!-- m -->
Вот и получается, что более вероятно заточить шапку на +10 больше, чем получить то, что я получил, пытаясь заточить её на +6 всего!!! Ну разве не бред?!
И если кто-то будет пытаться опровергнуть мои расчеты, убедитесь сначала, что вы изучали теорию вероятности и желательно не факультативно.
-
ieshua, я тебя прекрасно понял
вот тут на заточку тоже жалуются <!-- m --><a class="postlink" href="http://motronline.com/f/viewtopic.php?t=34412">http://motronline.com/f/viewtopic.php?t=34412</a><!-- m -->
и про выпадение лута согласен, иногда вообще ничего не падает, иногда рары один за другим...
видимо у генератора СЧ свои фазы луны) -
Все нормально, так и должно быть. Чем дольше мы бродим, чем больше точим, тем больше проводим времени в игре. Именно это от нас и нужно.
-
.
С заточкой еще хуже (у кого-то может и лучше, конечно). Как-то я решил с помощью знакомого кузнеца поточить cap[1]. Разумеется скил WR10 и шапку отлично видно, когда она ломается. Так 5 шапок из 6 сломалось при заточке на +5 и только одна при заточке на +6. В итоге я не смог заточить шапку вообще.
Да ладно я с 8 хант боу на +6 ни 1 не заточил, а потом забер точил так с 1 попытки на +7 :twisted:
-
кто сказал что если вероятность заточки 0.3 , то должна точится каждая 3я?
это математический расчет)) а вот то что ты сломал 5-6 предметов говорит о том что тебе просто неповезло с этой самой вероятностью, так как процент берется не от 5 или 10 а наверника за тысячу другую, и чем больше число точимых вещей будет стремится к бесконечности, тем больше %удачной заточки(выпадания лута) будет приближен к указанным цифрам
Тоесть если бесконечность приравняем к 100 то получим что у тебя может подрят незаточится более 60 вещей)))) а остальные будут заточены, но так как у нас не 100, а бесконечность то можешь сломать и 1000 вешей подряд (но это как должно подфартить)))
Дальше развивай идею сам))) -
Garas, точно подметил
-
70% - это шанс заточки 70кк вещей из 100кк вещей. т.е. ты можешь точить подряд 30кк вещей и все сломать
хоть это и почти невозможно, но тем не менее не противоречиво -
Стоит как нибудь написать топик по вероятности, дропу, дисперсии, шансам, и прочей ерунде, дабы меньше было подобных непониманий. )
З.Ы. В игре используется следующий механизм получения рандомного числа:
рандомное целое от 0 до (q-1) находится, как rand()%q, язык Си, если кто не знает.
Все вычисления целочисленные.Теперь в предположении правильного равномерного распределения:
Если шанс дропа p (13,4% = 0.134), то из N мобов в среднем выпадет n = pN вещей, дисперсия D = sqrt(p(1-p)*N) = sqrt((1-p)n) ~ sqrt(n), последнее приближение при малых шансах дропа p.
Далее, если n достаточно велико, то вы выбьете V = n +- sD вещей, где s - число порядка 1-3. Точно не вспомню, но шанс уложиться в s=1 порядка 68%, шанс уложиться в s=2 95.4%, в s=3 99.7%.Далее, если n - мало, такое часто бывает, когда мы выбиваем карту, для упрощения возьму еще условие малости p (p < 1%): Шанс выбить из N мобов хотя бы одну вещь с малым шансом p равен (1-exp(-p*N)), таким образом убив 10к тар, вы имеете шанс выбить карту 63%, убив 20к тар - шанс карты 86.5%, и наконец 30к - аж 95%
Поскольку рандом на самом деле дает квази-рандомные числа ("почти-случайные"), то возможны отклонения.
Непроверенная информация:
Чаще всего быстрый короткий генератор случайных чисел устроен следующим образом: X(n+1) = (a*X(n)+b)%(2^m), где a и b - специально подобранные автором генератора числа, дающие более-менее близкое к равномерному распределению данное, m - 16 или 32 или 64, вобщем битная размерность чисел, с которыми оперирует считалка. В коде остаток от деления берется автоматически из-за переполнения числа (порылся в инете, делят и на другие числа, не степени двойки). Вроде как это распределение кривое в младших битах, это можно проверить. Скорее всего именно такой генератор используется в игре поскольку он а) стандартный, б) быстрый. Кому интересно - в инете есть константы a и b, можете поискать.
Теперь манул к выбиванию крими карты:
Creamy: Creamy Card 0.03%, Honey 1.5%
Оцениваем число забитых бабочек по меду:
К примеру выбили 60 меда, 60 - это приблизительно 1.5%N, т.е. 4000 бабочек, дисперсия для меда sqrt(60) ~ 8, плюс-минус 8 меда - это около 8/1.5% = 600 бабочек, значит вы завалили 4000+-600 мобов. Щанс выбить из 4к мобов карту крими равен 1-exp(-40000.0003)=70%. Это значит, что на серваке при прочих равных условиях в среднем у тебя и двух твоих друзей выпадет 2 карты и 1 кукиш ) -
всё время забываете что генератор работает не на каждого в отдельности, а на всех и сразу, и почти на каждое событие.
-
@Furcube:
всё время забываете что генератор работает не на каждого в отдельности, а на всех и сразу, и почти на каждое событие.Угу, есть такая неприятность... Стандартный генератор и сам по себе не очень характеристики имеет, а что с ним творится при таком массовом использовании, страшно представить.
Создается впечатление, что чем больше онлайн, тем противнее ведет себя генератор. В крайнем случае, варка/ковка/заточка ведет себя куда ровнее в 4-5 утра, чем в 9-12 вечера :lol:
Хотя, иногда просто диву даюсь... На тестовом сточил 12 баклеров, +6 так и не получился. Потом сточил еще больше десятка чейнов (оружие 2 ур), до +8 не дожил ни один :lol:
И не надо рассказывать про коварную вероятность, так как вероятность "сточить" 12 баклеров по дороге до +6 - 0.03%, а если сюда еще приплюсовать чейны, то в сумме вероятность того, что Спакум случайно позвонит мне в двери окажется куда выше :lol:
ЗЫ: Может начнем агитировать Спакума, что бы он внедрил в эмулятор куда более "устойчивый" генератор?
-
@Max-Damage:
ЗЫ: Может начнем агитировать Спакума, что бы он внедрил в эмулятор куда более "устойчивый" генератор?
Тогда рухнет сервер к чертям. -
Линейный конгруэнтный генератор, используемый в нашем сервере, вполне достаточен для наших целей.
Кроме того использование его на массе игроков значительно повышает его вероятностные характеристики применительно к одному игроку.
-
Но нелепые вероятности выскакивать продолжают).
Правда...когда кто-то впервые увидев тару фрог выбивает из них карту, он об этом баге не форуме не вопит))).
Я лично ходил на тар по часику раз в недельку. Раз на 5-ый выбил через 5 минут ^_^ Потом пошел и выбил буклер за 30 минут и точнул его на +6 с первой попытки, кузнецом конечно. Но поперло так поперло
Надеюсь в этот день никто не сломал 10 фуллплейтов на +5, хех))
Ещё пример: все сетуют о тех же фазах луны и бранчах/час). А никто не задумывался, что просто респ плохой?
Я считал деревья между бранчами, максимальный перерыв 53 дерева и после этого 3 штуки упало почти подряд.
Стабильные 3% имхо=) -
@Spacoom:
Линейный конгруэнтный генератор, используемый в нашем сервере, вполне достаточен для наших целей.Но это ведь самый простой (и самый шустрый) из генераторов, которые могут быть реализованы програмно. Конечно, если вопрос упирается в производительность серверов, то ничего не попишешь.
А случаев странного поведения генератора много, подозрительно много. Взять тот же "двойной дроп", когда из двоих монстров подряд падает один и тот же набор лута (с рарным айтемом).
И откуда ноги растут у таких "странностей", понять тяжело. Весь теорвер пасует, разве что в коде что-то накручено.
-
Двойной дроп - это два слота с одной вещью.
Странных вероятностей не бывает, для любой последовательности выпадений можно подсчитать свою вероятность. Например вероятность, что из тридцатитысячного монстра выпадет карта - 95%. А из первого 0.01%.
-
Спакум как всегда молодец И он отлично ответил на вопрос, почему в то время как мы теряем зрение и деньги безуспешно пытаясь выбить какоую-нибудь карту или заточить какую-нибудь шмотку, он с ноутбуком лазит по горам и живет намного более полноценно, чем мы с вами
Но ответа на некоторые вопросы так и не прозвучало. Потому повторю их:
-
Как объяснить то, что случайные события происходят крайне неравномерно. То очень долго не выбивается что-то даже с большой вероятностью, а то вподряд выпадает что-то с очень маленькой.
-
Чем объясняются сложности заточки даже с довольно большим процентом успеха. Мои расчет касаемо конкретного примера и выдающегося шанса 0.16% никто почему-то не попытался опровергнуть. Меж тем такое везение меня окружает повсюду. Уверен, что не меня одного.
Отступление. Я знаю, что есть такой психологисечкий аспект, когда неудачи считаются чем-то из ряда вон выходящим, а удачи само собой разумеющимся. Я достаточно много провел времени в этой игре, чтоб заметить определенные закономерности в случайном выпадении и т.п.
-
Чем можно объяснить то, что ночью все работает несколько иначе (т.е. когда нагрузка на сервер уменшается)? Это замечают многие, а не только я.
-
Почему по свидетельству людей, которым я вполне склонен доверять, какие-то предметы раньше выпадали намного чаще (например, композиты и т.п.)?
-
Почему раньше те же композиты всегда можно было найти в продаже по цене 3кк, а сейчас их нереально найти ни по какой цене?
Если предположить, что Спакум и сотоварищи, не мутили ничего специального (а уж при таких познаниях в точных науках, если судить по репликам типа той, что выше, намутить что-нибудь - раз плюнуть), то я сам попробую ответить на первые 3 вопроса. Два последних, видимо, придется оставить на совести администрации, которая не слишком охотно делится секретами функционирования сервера.
Итак, немного порывшись в интернете, я нашел не только расшифровку сокроментальной фразы о конгруэнтном генераторе, но и кое-что любопытное, о чем я напишу ниже.
Для начала сделаю то, чем не удосужил себя великий. Вот формула этого генератора, кому интересно:
Xn = (Xn-1 * A + B) mod M;
где
Xn - получаемое число.
Xn-1 - предыдущее число.
A - множитель.
B - приращение.
M - модуль.Начальное число есть X0. которое ты укажешь сам.
вот подходящие константы:
A - 4096
B - 150889
M - 714025получаемое значение 32 бита.
Взято отсюда: <!-- m --><a class="postlink" href="http://www.gamedev.ru/forum/?action=showtopic&group=0&topic=4634">http://www.gamedev.ru/forum/?action=sho ... topic=4634</a><!-- m -->
или более подробно тут: <!-- m --><a class="postlink" href="http://ru.wikipedia.org/wiki/Линейный_конгруэнтный_метод">http://ru.wikipedia.org/wiki/Л�% ... 0%BE%D0%B4</a><!-- m -->Данный алгоритм имеет кучу недостатков, которые кратко перечисленны в другом источнике (<!-- m --><a class="postlink" href="http://ru.wikipedia.org/wiki/">http://ru.wikipedia.org/wiki/</a><!-- m -->):
Любой ГПСЧ с ограниченными ресурсами рано или поздно зацикливается. Длина циклов ГПСЧ зависит от самого генератора и в среднем составляет около 2(n/2) где n это размер внутреннего состояния в битах, хотя линейные-конгруэнтные генераторы и РЛСО (LFSR) генераторы обладают максимальными циклами порядка 2n. Если ГПСЧ может сходиться к слишком коротким циклам, такой ГПСЧ становится предсказуемым и является непригодным.
Большинство простых арифметических генераторов хотя и обладают большой скоростью, но страдают от многих серьёзных недостатков:
- Слишком короткий период/периоды
- Последовательные значения не являются независимыми
- Некоторые биты «менее случайны», чем другие
- Неравномерное одномерное распределение
- Обратимость
Думаю, что кмментариев тут даже не требуется, но попробую пояснить на практике. 3 и 5-ый пункты не осбо интересны, хотя по идее обратимость могла бы быть нам на руку А вот на остальных остановлюсь поподробне.
Собственно, наличие периодов (пункт 1) уже не должно радовать и я поясню почему. Если для каких-то конкретных настроек генератора мы смоделируем последовательность выбивания какой-нибудь редкой вещи, то может так получится, что за период, который, кстати, не больше М, эта редкая вещь выпадает всего 1 раз, а в последовательности 20000 чисел (следствие неравномерности распределения, пункт 4). Если предположить, что мы используем генератор, только для одного человека и только для выбивания предметов (т.е. вся наша последовательность у нас в руках, а не разбросана по кучи участников и событий), то получится, что убив 20000 мобов пы стабильно получим 1 карту. Не больше, и не меньше! 40000 - 2 карты. И т.д. Все это будет происходить именно так, а не иначе вследствии того, что значения не являются независимымми (пункт 4) Т.е. от нашей удачи ровным счетом ничего не зависит. Все зависит лишь от того, в каком месте последовательности мы в данный момент очутились. Если бы уметь это предсказывать, то можно ыбло бы приходить в нужное место, убивать нужного моба и получать нужную карту или еще чего-то.
Но у нас играет не один человек, генератор используется не только один раз при подсчете выпадения мегарара, а очень и очень часто. Но это даже хуже, так как если вы пробегаете всю последовательность, то у вас шанс выбить карту был бы хотя бы 1 из 20000. Причем это случилось бы наверняка рано или поздно и только когда именно не известно заранее. Но может случится вот что. Вы уже добиваете моба и вам как раз должно выпасть это самое заветное число, которое даст карту. Но в это время кто-то другой решил телепортнутся (а этот процесс так же "абслолютно случайный") и ваше счастливое число уплыло на следующий цикл. Т.о. то как выпадают всякие редкие вещи полностью зависит от того, что в данный момент делаете вы, другие игроки, мобы и т.п. Но только не от вашей удачи или неудачи.
Так как вызовов случайных чисел очень много, то эти счастливые числа последовательности, дающие редкие вещи, раз за разом могут пролетать мимо вас. А так же могут именно вам раз за разом попадаться
Потому, когда нагрузка на сервер снижается, то последовательность получаемых случайных чисел становится как бы более равномерной для конкретного игрока, так как цикл начинает крутится с меньшей скоростью.
-
-
Вот еще один пример из котрого видно, что в стандартном ANSI-C цикл имеет максимальную длину всего лишь 32768:
<!-- m --><a class="postlink" href="http://algolist.manual.ru/maths/generator/standard.php">http://algolist.manual.ru/maths/generator/standard.php</a><!-- m -->