Почему у нас так странно падают предметы и точатся вещи?
-
Двойной дроп - это два слота с одной вещью.
Странных вероятностей не бывает, для любой последовательности выпадений можно подсчитать свою вероятность. Например вероятность, что из тридцатитысячного монстра выпадет карта - 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 -->
-
вот блин математики
если вероятность выпадения вещи с монстра 0.1 % это вовсе не значит что все попытки запоинаются и с тысячного монстра выпадет вещь.
это значит при убивании милиона монстров выпадет количество вещей близкое к 1000
а если кто-то убил 2000 и возмущается что не выпало 2 штуки, то он нуб и в математике и в РО ^_^и не надо тут говорить что неправильный генератор случайных чисел. при такой нагрузке на него, он выдаёт действительно СЛУЧАЙНЫЕ результаты а не предсказуемые, как многим бы хотелось
то есть даже если вы делаете больше попыток чем надо В СРЕДНЕМ то всё равно есть вероятность (и немалая) что ничего не получится.
среднее оно на то и среднее что у кого-то получается с 1 попытки а у кого-то с 20ну и что же делать тем кто хочет гарантированного результата?
во первых и переточенную вещь и рар можно купить
во вторых полагаться на закон больших чисел и делать много попыток.
при заточке 1 ножика вы во власти судьбы, при заточке 100 штук - есть хорошие шансы что количество заточившихся до нужного уровня будет в пределах погрешности. -
Но ответа на некоторые вопросы так и не прозвучало. Потому повторю их:
-
Как объяснить то, что случайные события происходят крайне неравномерно. То очень долго не выбивается что-то даже с большой вероятностью, а то вподряд выпадает что-то с очень маленькой.
-
Чем объясняются сложности заточки даже с довольно большим процентом успеха. Мои расчет касаемо конкретного примера и выдающегося шанса 0.16% никто почему-то не попытался опровергнуть. Меж тем такое везение меня окружает повсюду. Уверен, что не меня одного.
пошарь в инете на тему учебника по теории вероятности и почитай, там есть все ответы на твои вопросы :twisted:
ещё раз, с чего ты взял что события должны происходить равномерно?
это СЛУЧАЙНЫЕ события. вероятность всяческих редких событий типа выбивания 2 карт за 1000 попыток можно посчитать и она не такая уж маленькая -
-
ieshua, пример, который ты привел про одного игрока, получающего всю последовательность - это конечно "модель победы абсолютно упругого сферического коня в вакууме"; поскольку функция rand() используюется невероятно часто в игре (не только дроп и телепорт, но и атака, монстры и еще куча всего) то та под-последовательность, которая достается тебе на дроп карты совсем уж не предсказуема. В случае большого числа пользователей на период этого генератора можно забить.
Ну и конечно же тут нет щастливчиков, которые точат вещи с первой попытки на +7+8.
Про мизерный шанс именно той комбинации заточки (вроде 6 вещей на +5) - это уж совсем не в кассу. В теорвере шанс до испытания и после - две большие разницы. Если взять случайные целые числа от 1 до 10^6, вытащить число 12345, а потом кричать "Как такое случилось, ведь шанс вытащить это плохое число был 0.0001% !!!" - то это тот же крик про заточку.
-
Товарищи, закон больших чисел никто не отменял. Так что карта с тысячного моба это идеал, к которому стремится дроп.
Гадайте на кофейной гуще, чтоб выбрать момент для нажатия кнопки для заточки с +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% слишком мало (или слишком много и не жалуйтесь потом если это пофиксят ^_^ )