[ГАЙД] Как собирать коллекцию в Hearthstone

Я бы может помог, но я честно не понимаю, что ты хочешь посчитать. Поясни более подробно с выкладками, что ты считаешь, что у тебя получается и что тебе не понятно.
Впрочем я считаю, самый простой и точный метод — статистический. У нас на большой дистанции в паках примерно 71.5% карт — коммоны, 22,7% — рарки, 4,6% — эпики и 1,2% — леги. И из этого предположения легко собрать формулу зависимости процента сбора коллекции от числа паков. Да, безусловно будут отклонения, но они будут намного меньше чем отклонения от твоего худшего результата на основе пититаймеров

Поясняю кратко метод, он основан на гарантированных выпадениях карт:

  1. Согласно новым правилам выпадения карт в паках можно заранее знать, сколько паков наверняка хватит для всех рарок и обычек. Их количество равно удвоенному количеству экзмепляров рарок, плюсом есть пыль от лишних обычек, начиная с пака, когда они все собраны.
  2. При этом выпадают эпики и леги. На основании количества паков для рарок можно точно знать, сколько их будет сразу. Количество эпиков равно количеству паков для рарок, поделённому на 10 с отбрасыванием остатка. А количество лег равно двум в первых 50 паках и одной в каждых 40 следующих.
  3. Зная эти цифры, отнимаем от общего количества эпиков и лег те, что уже выпали. Получаем оставшуюся часть выпуска.
  4. Выясняем, сколько пыли и паков нужно для их получения с учётом того, что из дополнительных паков леги и эпики тоже падают. Я как раз считаю, как это сделать.

Я помню, что рассчитывать надо на среднее выпадение и помнить, что падают и золотые карты. Поэтому итоговый результат можно делить пополам или отнимать от него треть или четверть.

А когда соберётся статистика, то можно сравнить её с расчётом и скорректировать его.

P. S. Расчёт окончен, гайд обновлён. Для вывода результата использованы два альтернативных метода:

  1. вычисление среднего арифметического всех вариантов количества паков в рекурсии;
  2. перевод всех вариантов рекурсии в пыль и сравнение с нужным количеством пыли для сборки всех недостающих эпиков и лег вручную.
2 лайка

Дорогие друзья! Таблица обновлена:

  1. Сделано более удобное оформление;
  2. Ветка рекурсии вынесена на отдельный лист;
  3. Введён подсчёт количества карт, которые можно собрать из имеющейся пыли;
  4. Введён лист “Выпуски”, где расписано количество карт и наборов для каждого выпуска, а также общее количество карт и наборов для сбора полной коллекции (не золотой).

Возможно, на днях я снова обновлю таблицу, добавив ещё один метод подсчёта количества наборов (если разберусь в нём).

А пока готовьте статистику открытия наборов Руин Запределья. Специально для этого я даю шаблон таблицы: https://yadi.sk/i/aC2B9G37PBflnQ.

Лайков: 1

Я не хотел это писать, но меня заставили.

Способов принуждения у меня нет, соответственно, ты сам себя заставил написать это. Следовательно, ты это захотел и обманываешь себя.

А теперь объявление: я ещё раз проверил всё и внёс изменения согласно уточнению от bySalamandra. Оказывается, золотые карты всё-таки учитываются отдельно от обычных. Также исправлены некоторые опечатки, внесены корректировки в описании действий в таблицах и уточнено количество карт во всех наборах с учётом акционных.

Уточнение основано на твите от разработчика Celestalon.

Обращение к MVP: пожалуйста закрепите тему в FAQ в разделе с описанием коллекции.

2 лайка

Спасибо за таблицу! Она крутая!

Лайков: 1

Пожалуйста. Я с радостью приму пожелания по дополнению и уточнению, а также отвечу на вопросы по методике расчёта.

Ну это такой спорный гайд по сбору “обычной коллекции”, который к тому же идет в ущерб по сбору золотой. Хотя каждый сам для себя расставляет приоритеты.

А в чём спорность? Я наоборот, считаю, что это полезно для всех. Каждый может посчитать, сколько паков осталось до полного сета, в том числе и с учётом имеющихся карт. К тому же золотую коллекцию легче собрать самостоятельно из пыли, потому что шанс выпадения золотых карт намного ниже выпадения незолотых.

Лайков: 1

Приветствую! Перво-наперво, огромное спасибо за подсчёты. Тема офигенная. С удовольствием помогу в сборе статистике, правда, паков я собираюсь открыть немного, но всё же… Однако у меря есть пара вопросов/замечаний.

  1. Я правильно поняла, при открытии 55 паков у меня будут повторки, сиречь пыль на нужные но не выпавшие карты?
  2. В шаблоне таблицы напротив первого пака не пустые строчки, которые надо заполнить, а наименования редкости карт. Не мог бы ты исправить?
  3. Есть вопросы по заполнению таблицы. С редкостью ясно, просто пишем количество. А что насчёт золотых карт? Как этот столбец заполняется, если, скажем, мне в паке выпала золотая редкая и золотая легендарная?
  4. Что за стоимость карт на сборку и стоимость карт на распыление?
  1. Да, это повторки обычных карт. С них и будет падать пыль. Как я понял, ты имеешь в виду свежий аддон. Так как обычные карты до сбора полного сета падают последовательно, то они все соберутся за 52 * 2 / 4 = 26 паков.
  2. Это образец для заполнения.
  3. Я вручную выделяю золотую карту жёлтым фоном в ячейке. Всё заполнение вручную, счёт тоже.
  4. Стоимость карт на сборку - стоимость сборки из пыли всех карт, которые были получены из паков. Стоимость на распыление - количество пыли, которое будет получено при возможном распылении всех полученных карт. Я писал это вручную.
Лайков: 1
  1. Да, именно так. Просто пытаюсь решить для себя, сколько в новых условиях откладывать золота на аддон. Спасибо.
    2, 3. А, то есть заполнять надо не цифрами, а названием редкости, выделяя его жёлтым, если карта выпало золотой. Верно?
  2. Спасибо, поняла.
    Upd. Meh, форматирование шалит. Надеюсь, понятно на что я отвечала. :sweat:

Я пишу названия карт и выделяю их цветом редкости (для обычных оставляю чёрный).

Вот ссылка на мою статистику из Ульдума для более детального примера: https://yadi.sk/i/TlyxK4qBPu035A.

Лайков: 1

Вау. :money_mouth_face: Хорошо, механизм заполнения ясен. :ok_hand:
Ещё я вспомнила, что забыла спросить, что значит Маркеры получения особых карт. :unamused:

Паки, где получены леги и эпики. В примечаниях это написано. И если в одном паке лега и эпик, то я ставил зелёный маркер. Эти маркеры помогали мне отслеживать частоту выпадения этих карт.

Лайков: 1

Не могу зайти в бнет. Очередь на 8 часов.

mawile, конечно, прав. Без работы с практической статистикой не обойтись. Проблема в том что мы никак не можем узнать сколько именно коммонок и рарок в среднем падает из паков во-первых. А во-вторых у нас также нет официальных данных по пити-таймерам золотых карт, поэтому предельно доступно точно учесть их дроп можно тоже только на основе практической статистики.

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

Например, так (беру цифры из своих старых записей, они примерно правильные):
18234 паков было вскрыто
63728 коммонок выпало
19604 рарок
3819 эпиков
982 лег
1390 золотых коммонок
1299 золотых рарок
254 золотых эпиков
94 золотых лег

Дальше пишем функцию вскрытия пака по новым правилам, которая будет в качестве веса редкостей брать оные цифры. А редкости уже заполняем конкретными картами набора так, чтобы они не повторялись до тех пор, пока не будут заполнены все слоты соответствующей редкости в наборе.

Не забываем также учесть следующие моменты:

  1. Если мы ставим себе целью моделирование сбора только обычной коллекции, то золотые лишние копии распыляем приоритетно.
  2. Золотые копии коммонок распыляем безусловно (даже если у нас ещё нету ни одной такой незолотой коммонки), потому что за распыл золотой коммонки дают 50 пыли, а крафт обычной стоит 40. 10 пыли из “ниоткуда” немного ускорит сбор сета, а коммонка всё равно выпадет.
  3. Все лишние копии распыляем виртуально. То есть не пылим их на самом деле, но ведём точный подсчёт пыли, в них содержащейся.
  4. Последним вскрытым паком станет тот, после которого запас пыли из предыдущего пункта окажется достаточным для докрафта 100% недостающих карт.
  5. Не забываем учесть, что в первых десяти паках падает гарантированная лега. Я, кстати, не знаю с наскока как это запрограммировать. Это может оказаться сложной задачей.
  6. Можно очень сильно напортачить с условной вероятностью при программировании функции дропа карт. Тут коротко я не смогу пояснить, у меня для этого мозгов мало. Правильный результат даёт такая функция дропа карт из пака, которая вообще не учивает ничего: ни предельно допустимое число копий карты в одном паке, ни предельно допустимое число коммонок в паке. То есть в моделируемых паках МОЖЕТ быть 5 одинаковых коммонок, например. В условиях новых правил дропа с этим надо детально разбираться при тестировании функции.

Ну а дальше просто:

  1. Собираем 100000 наборов.
  2. Каждый раз считаем число паков, которое потребовалось на 100% заполнение набора.
  3. Выбираем из 100000 самое максимальное число (нам дико не пёрло), самое минимальное (мы боги удачи) и среднее арифметическое (главное из всех).

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

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

2 лайка

Спасибо большое за отклик. Теперь отвечу на твоё сообщение.

mawile , конечно, прав. Без работы с практической статистикой не обойтись. Проблема в том что мы никак не можем узнать сколько именно коммонок и рарок в среднем падает из паков во-первых. А во-вторых у нас также нет официальных данных по пити-таймерам золотых карт, поэтому предельно доступно точно учесть их дроп можно тоже только на основе практической статистики.

Всё то, что ты написал, это, конечно, хорошо и имеет смысл, но только при наличии статистики. А я именно потому, что статистики не было, на основе изложенных правил решил пойти методом вычёркивания из списка. Изложу его ещё раз, он основан на опубликованных правилах выпадения карт:

Каждый набор содержит 5 карт минимально гарантированного качества: 4 обычные и 1 редкую. Но при этом они могут замениться случайным образом на эпические и легендарные (как правило, заменяются не более 1 или 2 карт). В игре есть так называемый «таймер жалости», гарантирующий выпадение эпической карты в каждом 10-м наборе одного выпуска и легендарной карты в каждом 40-м наборе одного выпуска. Но для первых 10 наборов выпуска есть и гарантия выпадения дополнительной легендарной карты. Таким образом, вскрыв 50 первых наборов одного выпуска, можно наверняка получить 5 эпических и 2 легендарные карты. С учётом ограничения на выпадение любых повторных карт, введённого с 26 марта 2020 г., мы имеем такую картину:

  1. когда мы получаем карту любым способом, это учитывается игрой;

  2. обычные карты выпадают последовательно, пока не будут в полном комплекте (2 экземпляра каждой карты);

  3. редкие карты выпадают по тому же принципу, но в меньшей интенсивности;

  4. для эпических и легендарных карт работают «таймеры жалости», но без повторов;

  5. когда получение всех карт учтено, могут выпадать повторные;

  6. золотые карты учитываются отдельно от не золотых (спасибо bySalamandra за уточнение, основанное на твите от разработчика Celestalon ).

Имея эти критерии можно подсчитать приблизительное количество наборов, необходимое для сборки полного выпуска. Вот формулы для подсчёта гарантированного получения всех карт каждого вида редкости:

Обычные: кол-во наборов = (кол-во карт * 2) / 4. Даст приблизительный результат, т. к. некоторое количество обычных карт случайным образом замещается другими (в том числе золотыми).

Редкие: кол-во наборов = (кол-во карт * 2). Тоже приблизительный результат по вышеуказанной причине.

Эпические: кол-во наборов = (кол-во карт * 2) * 10.

Легендарные: кол-во наборов = (кол-во карт * 40) - 30.

Действие “-30” в последней формуле для того, чтобы учесть гарантированную легу в первых 10 наборах выпуска.

Таким образом, я посчитал все карты выпуска как четыре списка. Два из них, для обычных и редких карт, уменьшаются последовательно, пока не исчерпаются полностью, а для эпических и легендарных по пититаймерам. Повторки падают после получения всех карт одной редкости, независимо от способа получения и их дальнейшей судьбы. И тут у меня возникла проблема.

У нас собраны все обычные и редкие карты, есть 16 эпических и 2 легендарные карты (с учётом 2 гарантированных легендарных карт в первых 50 наборах). Нужны ещё 20 эпических и 30 легендарных карт, а для них совместно – 54800 пыли (8000 на эпические и 48000 на легендарные). Для них надо 1400 наборов. Это очень много, но из них выпадут эпические и легендарные карты. Их, в свою очередь, тоже надо учесть. Мы получаем рекурсию:

Далее она расписана в первом посте, повторяться лишний раз не буду. Затем я вывел два возможных варианта дальнейших действий:

  1. вычислить среднее арифметическое нужного количества наборов, взяв все варианты их количества в цепочке, получаем 371 шт.;

  2. вручную пройти по цепочке и оценить, какого количества наборов и пыли примерно хватит для сборки оставшихся карт с учётом того, что карты нужной редкости продолжают выпадать. Для этого надо все карты из этих наборов перевести в пыль и сравнить с нужным её количеством, получаем наиболее оптимальное число 491 набор при дополнительных 49 эпических и 12 легендарных картах, а также 17200 пыли, что находится примерно между 8 и 9 шагами рекурсии.

Итоговый результат будет довольно большим, и для приблизительного получения более реалистичного (по среднему выпадению) можно его разделить на два и дополнительно прибавить от 1/4 до 1/3 от исходного числа.

Из этих подсчётов можно сделать такой вывод: чаще всего для сборки полного выпуска достаточно получить из наборов приблизительно 3/4 всех карт, а оставшуюся четверть можно собрать из пыли, получившейся от распыления лишних карт.

Там же, в первом посте, есть ссылка на таблицу excel с автоматическим расчётом количества наборов на основе вводимого количества карт и кое-какими смежными выкладками ( https://yadi.sk/i/tfId31SCpUFPBQ). В этом и нужна твоя помощь, чтобы ты проверил этот метод и изложил своё мнение о нём. Можно ли его улучшить? Мне кажется, что можно, но я не знаю точно. как именно.

Кстати говоря, этот метод решает упомянутую тобой проблему чисто статистического учёта:

Не забываем учесть, что в первых десяти паках падает гарантированная лега. Я, кстати, не знаю с наскока как это запрограммировать. Это может оказаться сложной задачей.

Я для этого отнимаю от количества наборов, нужных для открытия легендарных карт, 30 штук.

Также прокомментирую твои другие замечания:

Если мы ставим себе целью моделирование сбора только обычной коллекции, то золотые лишние копии распыляем приоритетно.

Да, сбор обычной коллекции и является целью, на это я и ориентировался изначально.

Золотые копии коммонок распыляем безусловно (даже если у нас ещё нету ни одной такой незолотой коммонки), потому что за распыл золотой коммонки дают 50 пыли, а крафт обычной стоит 40. 10 пыли из “ниоткуда” немного ускорит сбор сета, а коммонка всё равно выпадет.
Все лишние копии распыляем виртуально. То есть не пылим их на самом деле, но ведём точный подсчёт пыли, в них содержащейся.

Золотые карты учитываются отдельно от не золотых (спасибо bySalamandra за уточнение, основанное на твите от разработчика Celestalon). Все незолотые мы получим в любом случае.

Можно очень сильно напортачить с условной вероятностью при программировании функции дропа карт. Тут коротко я не смогу пояснить, у меня для этого мозгов мало. Правильный результат даёт такая функция дропа карт из пака, которая вообще не учитывает ничего: ни предельно допустимое число копий карты в одном паке, ни предельно допустимое число коммонок в паке. То есть в моделируемых паках МОЖЕТ быть 5 одинаковых коммонок, например. В условиях новых правил дропа с этим надо детально разбираться при тестировании функции.

Как мне кажется, можно сделать так:

  1. Сначала высчитать общее количество наборов с учётом получающейся из них пыли;
  2. потом проверить каждый получившийся набор на соответствие правилам и исправить допущенные грубые ошибки (например, набор с одними обычными картами или набор из одних легендарных), принудительно заменив такие “аномальные” наборы наборами с 4 обычными и 1 редкой картой;
  3. проверить соответствие “имеющихся” карт необходимому количеству в выпуске и в случае избытка и/или недостатка скорректировать проверяемое количество согласно правилам;
  4. вновь проверить получившееся количество наборов и карт на достаточность до сборки полного выпуска (переведя всё в пыль и сравнив с количеством пыли, нужным для сборки всех карт с нуля);
  5. если наборов вновь много или мало, добавить “недостающие” или убрать “лишние”, придерживаясь правил;
  6. и наконец, когда точное количество наборов и их состав посчитаны, можно присвоить картам названия, следя, чтобы они повторялись не более двух раз (для легендарных повторов вовсе не должно быть).
Лайков: 1

Коротко говоря, твой путь имеет такие даже не недостатки, а скорее неудобства при реализации:

  1. Надо программировать формулы на каждом шагу, это трудоёмко.
  2. Ты манипулируешь оценками сверху (то есть пити-таймерами), а потом очень грубо делишь пополам, что сильно снижает реальную точность.

Если бы делал я, то я бы отказался делать по твоему пути, потому что:

  1. Я потратил бы больше усилий на реализацию.
  2. Реализация оказалась бы очень громоздкой.
  3. Конечная достоверность (точность) полученных оценок была бы несколько низковатой, по всей видимости.

Поэтому лучше, имхо, написать полноценное моделирование и получить точность строго коррелирующую с исходной статистикой.

Одновременно мы получаем универсальный алгоритм, меняя всего 4 входящих цифры (число коммонок, рарок, эпиков и лег в наборе) в котором, мы сможем мгновенно выдавать среднее арифметическое нужного числа паков на 100% заполнение любого по составу набора.

Но это программирование, да. Экселя никак не хватит.

На самом деле я хочу попробовать когда-нибудь поднять свой код и переделать его под новые правила дропа. Но хз когда у меня руки дойдут.

Лайков: 1

В том же экселе мне не составило труда сделать расчёты. Конечно, с одной стороны, они грубые, потому что основаны на наихудшем сценарии выпадения карт (строго по пититаймерам), но с другой - иной точной методики я не знаю; цифры пититаймеров и последовательное выпадение рарок и обычек в соответствии с новыми правилами - единственные исходные данные, на которые можно опираться. К тому же я нисколько не отрицаю низкую точность метода. Мне казалось, что добиться её невозможно, так как нельзя наверняка предсказать, что и как именно будет падать, поэтому я в первом посте порекомендовал полученный результат поделить пополам, а затем прибавить к нему от 1/4 до 1/3 от исходного числа. А сейчас уже будет релиз нового аддона, я открою купленные паки и пойму сам, годится ли мой метод на что-то или нет.