Здесь вы можете задать свои вопросы, предложить и просто высказаться о доступном на сайте инструментарии, таком как Расширенная статистика, Сравнение игроков, Статистика кланов, Статистка Сервера
#172928 pavlo65 13 янв 2016, 19:16
Давно хотел знать: какой танк, самый редкий в игре. Опираясь на данные статистики сервера попробовал это узнать. Суть свел к тому, что зная кол-во боев на технике за период (BC) и ее уровень боев (BL) (если уровень 7-9, то BL = 3), посчитал сколько боев проводит каждый танк на разных уровнях (BC\BL). Тут пришлось принять условность, что каждый танк играет равное кол-во боев на всех доступных уровнях. Знаю что это не так, знаю что еще необходимо учитывать балансный вес танка (у САУ он, к примеру, чуть выше), просто не смог придумать более точного расчета. Затем посчитал сумму боев, которая проходит на каждом уровне от 1 до 11 (TBL) (знаю, что эта цифра тоже условная). Ну а дальше просто поделил кол-во боев каждого танка на уровне (BC\BL) на общее кол-во боев на каждом уровне, в который кидает этот танк (TBL). Полученные цифры примерно показывают (с учетом принятых условностей) вероятность встречи в рандоме каждого танка на его уровне боев.
Предлагаю ознакомиться с результатом. Был бы очень рад появлению на сайте более точных цифр, лично для меня эта информация очень интересна. Возможно, можно не идти обходными путями и при помощи серверного API вытянуть данные о том, сколько боев отиграл каждый танк на разных уровнях?
Вложения
(100.12 КБ) Скачиваний: 149
#172955 pavlo65 13 янв 2016, 21:09
Очень жаль. Возможен ли вариант появления схожего функционала на сайте с учетом реального принципа работы балансировщика?
#172957 Edrard 13 янв 2016, 21:31
Да же и не знаю, не буду ничего обещать, так как планов и работы есть на ближайший год уже.

Я вот посмотрел на таблицу, и не очень понял, где результаты то исследование? :)
#172961 pavlo65 13 янв 2016, 22:35
Ну как же. Столбец частота встречи: нулевые в расчет не беру, там данные за последние 2 недели. Из реальных танков самый редкий Pz.Kpfw. V/IV Alpha. Значение говорит, что танк будет встречаться каждые 164800 боев, проведенных на его уровнях т.е. 7-8. А вот самый доступный оказался T1 Cunningham, в отличии от ИС-3, если отсортировать данные статистики сервера по проведенным боям. Ведь на 8-10 уровнях играет гораздо большее кол-во типов танков, поэтому на этих уровнях в бою, в среднем, будет 1.5 ИС-3 (столбец левее). Тогда как играя на 1-2ур (уровни боев T1 Cunningham) мы будем встречать 5.5 машин данного типа в бою.
Целью статистики было показать редкость встречи машины с учетом ее уровня боев.
#172962 pavlo65 13 янв 2016, 22:55
Отсюда, кстати, можно сказать, что Churchill Gun Carrier является самым редким исследуемым танком в рандоме (для медали "экcперт", к примеру), встречается каждые 86 боев на его уровнях, т.е. 6-8.
Самый редкий танк, покупаемый через клиент игры STA-2, будет встречаться каждые 98 боев. Тогда как самый массовый прем Т34, его вы встретите каждый 1.1 бой.
Самой популярной премиумной техникой будет 43 M. Toldi III. Оно и понятно, свежая халява, его мы видим по 2.5 машины в бою.
А самая редкая десятка на данный момент - это Type 5 Heavy. Не все еще успели выкачать. Его мы видим каждый 60 бой. Самойже популярной будет, традиционно, ИС-7 (1.1 машинки на бой).
Самый популярный ЛТ (без учета лоу лэвэльной техники) будет AMX 13 90 - встретим каждые 1.2 боя
Самый популярный СТ будет Т-34-85 - деды воевали. по 1.4 машины на бой
Самый популярный ТТ будет ИС-3 традиционно, за ним КВ-1 и ИС-7
Самоя популярная ПТ будет E 25 (по 1.5 танка на бой) - спасибо WG за марафон. Из прокачиваемой - Т67 (1.1 на бой) - имба, как не крути.
А вот САУ встречаются реже СУ-18 увидим в каждом 1.7 бою, а из серьезного Bat.-Châtillon 155 58 и Объект 261 практически в одинаково видим через 1.85 боев
Из интересного: некогда популярный и всеми любимый "[цензура]ев" M4A3E8 Sherman сейчас находится на 7 месте по редкости среди исследуемых машин. Мною люимая ПТ 7 уровня T25 AT занимает 8 место по редкости. Сказывается неактуальность всей ветки в целом. Ну и так далее.
#172968 Edrard 13 янв 2016, 23:39
Если последовательно опишите всю математику, то попробую быстро сделать подобную таблицу.
#172973 pavlo65 14 янв 2016, 01:06
Первым делом связал уровни боев с каждым танком, если совсем примитивно, то пусть будет массив из 11 значений combat_level, в котором будут 1, если танк может попасть в этот уровень боя, 0 - если нет. Отсюда же можно узнать кол-во лэвэлов, на который попадает танк - сумма всех единиц combat_level_count.
Дальше идут условности и упрощения. Я предполагаю, что на каждом из доступных уровней танк отыгрывает одинаковое кол-во боев. Здесь бы учитывать балансный вес танка.
tank_battle_count // кол-во боев танка из статистики сервера
tank_battle_per_level = tank_battle_count / combat_level_count // Кол-во боев танка на каждом из доступных уровней
Далее необходимо посчитать сумму всех боев всех танков на каждом уровне отдельно (сколько всего отыграно боев на каждом уровне).
total_battle_per_level[11]
all_tanks[454] // Не знаю как хранятся данные о танках, условно будет класс
for (k = 0; k < 11; k++) // Считаем сумму боев на 11 уровнях
-----for (j = 0; j < tanks_number; j++) // Проходим по всем танкам в игре
----------if (all_tanks[j].combat_level[k] == 1) // Если танк участвует в k-ом уровне боев
---------------total_battle_per_level[k] += all_tanks[j].tank_battle_per_level
В конце полученные значения делю на 30 (возможно нужно 29) т.к. в каждом бою помимо нашего танка еще 29 машин
for (k = 0; k < 11; k++)
-----total_battle_per_level[k] /= 30
Остается соотнести кол-во отыгранных боев на уровнях каждого танка с только что посчитанным общим кол-во боев на каждом уровне и поделить на кол-во уровней боев combat_level_count. Полученное значение tank_per_battle будет говорить: сколько танков данного типа участвует в 1 условном бою его уровней (в среднем).
for (k = 0; k < tanks_number; k++) { // Иду по всем танкам
----- for (j = 0; j < 11; j++) // Ищу: на каких уровнях играет танк
---------- if (all_tanks[k].combat_level[j] == 1) // Если танк попадает на этот уровень боев
---------------all_tanks[k].tank_per_battle += all_tanks[k].tank_battle_per_level / total_battle_per_level[j]
-----all_tanks[k].tank_per_battle / all_tanks[k].combat_level_count // Делю на общее кол-во уровней (среднее арифмет.)
}
Собственно расчет готов. Теперь только еще можно найти обратную величину, которая будет говорить, через какое кол-во боев (на доступном танку уровнях) встречается выбранная машина.
meetings_frequency[k] = 1 / all_tanks[k].tank_per_battle
#172974 pavlo65 14 янв 2016, 01:08
Скрещиваю пальцы чтобы не отпугнуть своим псевдокодом) Прости, не силен в программировании, а формулами еще хуже былоб

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Реклама | Adv
cron