Jump to content
Korean Random
seriych

xTE: рейтинг эффективности по танкам. Формула и обсуждение.

Recommended Posts

2 hours ago, seriych said:

Это точно актуальные обновляющиеся данные?

По аналогичной ссылке https://static.modxvm.com/wn8.json данные не обновляются, нужно забирать с более мудрёного адреса https://static.modxvm.com/wn8-data-exp/json/wn8exp.json

Edited by norkas

Share this post


Link to post

Short link
Share on other sites
25 минут назад, norkas сказал:

Это точно актуальные обновляющиеся данные?

Да.

Share this post


Link to post

Short link
Share on other sites

Чушь полная  с новыми рейтингами !!! Был зеленый стал желтый!!! ДА Я любого фиолетового в разнос разнесу))(.

 

Share this post


Link to post

Short link
Share on other sites

Может это уже обсуждалось, на знаю, но: всякий раз когда я обзавожусь новым танком, его начальный xte будет низким, в основном по двум причинам: (1) я еще не привык к нему, и (2) он имеет стоковое вооружение. А потом он начинает расти. Если у меня тысячи боев на данном танке, то xte не очень хорошо отображает мой реальный уровень на данный момент. Может, имело бы смысл учитывать только N последних боев, сколько-то сотен.

Share this post


Link to post

Short link
Share on other sites

Доброго времени суток. Может мой вопрос и не сюда, но очень бы хотелось узнать. Можно ли в моде "отображение статистики в бою" вместо "ожидаемого урона" добавить показание "топового"? И если да, то как? Заранее благодарен за ответ

Share this post


Link to post

Short link
Share on other sites
5 часов назад, BIGBAM сказал:

Чот не работает обновлении 1.1. Местами пропали вообще

Проблема известна. Ждите выхода новых версий.

 

Share this post


Link to post

Short link
Share on other sites
5 часов назад, sirmax сказал:

Никак, XTE только по танку.

По всем танкам нельзя то есть? В итоге же получится общий xte

Вот к примеру получил я значение рейтинга по каждому танку, вопрос в том как правильно их сложить чтоб получить общий

Screenshot_34.thumb.png.bd9c3fccfac9e2bbba807e85e1ae6ff6.png

сделал так

a = умножаем полученный xte по танку на уровень танка, полученное значение по каждому танку складываем (XTE1*level1+XTE2*level2+XTE3*level3)

b = складываем уровень всех танков (level1+level2+level3)

итог = a / b

 

Edited by Ekspoint

Share this post


Link to post

Short link
Share on other sites
19 часов назад, Ekspoint сказал:

как правильно их сложить

как хочешь. Рейтинг xTE документирован только для отдельных танков.

 

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

Преимущество xTE в оценке отдельных танков в том, что он очень быстро "устаканивается", поэтому даже если в бою катаются игроки с несколькими десятками боев на танке, мы все равно можем получить более-менее адекватную оценку. А глобальные рейтинги содержат параметры, которые стабилизируются очень долго, на протяжении тысяч боев. Но если эти тысячи боев есть, и техника разная, то эти рейтинги безусловно лучше.

Edited by seriych

Share this post


Link to post

Short link
Share on other sites
stat = [1.2, 1.5, 1.9, 2.5, 3.1, 3.8, 4.6, 5.5, 6.6, 7.7, 9.0, 10, 12, 14, 15, 17, 19, 21, 24, 26, 28, 31, 33, 36, 38, 41, 43, 46, 48, 51, 53, 56, 58, 60, 63, 65, 67, 69, 71, 73, 74, 76, 78, 79, 80.8, 82.2, 83.6, 84.8, 86.0, 87.1, 88.1, 89.0, 89.9, 90.8, 91.6, 92.3, 92.9, 93.6, 94.1, 94.7, 95.1, 95.6, 96.0, 96.4, 96.7, 97.0, 97.3, 97.6, 97.8, 98.0, 98.2, 98.4, 98.6, 98.7, 98.9, 99.0, 99.1, 99.2, 99.3, 99.37, 99.44, 99.51, 99.57, 99.62, 99.67, 99.71, 99.75, 99.78, 99.81, 99.84, 99.86, 99.88, 99.90, 99.92, 99.93, 99.95, 99.96, 99.97, 99.98, 99.99]
def xteTosup(value):
    indexed_value = stat[min(int(value), 100)-1]
    if value < 100 and isinstance(value, float):
        return indexed_value + (float(value) - int(value)) * (stat[int(value)] - stat[int(value)-1])
    return indexed_value

def supToxte(value, exact=True):
    index = next((i for i,x in enumerate(stat) if x > value), 100)
    if exact:
        if index < 100:
            if index == 0:
                if value > 0:
                    return float(value) / stat[0]
            else:
                return index + (float(value) - stat[index-1]) / (stat[index] - stat[index-1])
        return float(index)
    return index

#Пример расчета XTE для средниих танков пусть есть 2 танка 10 уровня, 3 танка 9 уровня, если боев на танке меньше 10 то танк не учитываем в расчетах
XTE_1 = 45.2 #точный XTE на Об.140
XTE_2 = 62.0 #точный XTE на E-50M
XTE_3 = 43.4 #точный XTE на T-54
XTE_4 = 54.8 #точный XTE на E-50
XTE_5 = 51.5 #точный XTE на Patton
BATTLE_1 = 25; BATTLE_2 = 250; BATTLE_3 = 120; BATTLE_4 = 230; BATTLE_5 = 30
#переходим от XTE к % уникальности игрока на каждом танке
U1 = 100-xteTosup(XTE_1)
U2 = 100-xteTosup(XTE_2)
U3 = 100-xteTosup(XTE_3)
U4 = 100-xteTosup(XTE_4)
U5 = 100-xteTosup(XTE_5)
print U1,U2,U3,U4,U5
#Находим % уникальности на каждом уровне
U_L10 = (BATTLE_1+BATTLE_2)/(BATTLE_1/U1 + BATTLE_2/U2)
U_L9 = (BATTLE_3+BATTLE_4+BATTLE_5)/(BATTLE_3/U3 + BATTLE_4/U4 + BATTLE_5/U5)
print U_L10, U_L9
#Находим % уникальности на СТ и соотвествующий ему XTE
U_ST = (10+9)/(10/U_L10 + 9/U_L9)
print U_ST, round(supToxte(100-U_ST),2)
#Пример второй, как зная U_LT, U_ST, U_TT, U_PT, U_SAU найти итоговый XTE, для этого нужно знать суммарное число боев на каждом типе техники, пусть цифры такие
U_LT = 15.2; U_ST = 12.5; U_TT = 13.7; U_PT = 14.5; U_SAY = 35.6
B_LT = 834; B_ST = 2572; B_TT = 1839; B_PT = 3401; B_SAY = 726
U = (B_LT+B_ST+B_TT+B_PT+B_SAY)/(B_LT/U_LT + B_TT/U_TT + B_ST/U_ST + B_PT/U_PT + B_SAY/U_SAY)
print U, round(supToxte(100-U),2)

что скажите на счет этого расчета?

спасиб @StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Вообщем остановились на вот таком варианте расчета.

 

1. Находим сначала процент уникальности игрока на каждом танке, путем преобразования XTE в SUP

UNP = 100 - xteTosup(XTE)

2. Находим средние проценты уникальности игрока на J-ом уровне (1, 2, ... 10) для каждого М-го типа техники (LT, MT, HT, AT, SPG)

UNP_J = (BAT_1 + BAT_2 + ... + BAT_K) / (BAT_1/UNP_1 + BAT_2/UNP_2 + ... + BAT_K/UNP_K), где BAT_K и UNP_K - число боев и процент уникальности игрока для K-го танка J-го уровня M-го типа техники

3. Рассчитываем усредненные процент уникальности для каждого М-го типа техники

UNP_M = (LEVEL_1 + LEVEL_2 + ...) / (LEVEL_1/UNP_1 + LEVEL_2/UNP_2 + ...), где LEVEL_1 = 1, LEVEL_2 = 2 и так до 10 уровня.

Если на каком уровне танков нет, то в формуле исключаем его и из знаменателя и из числителя

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

UNP = COUNT_TYPE / (1/UNP_LT + 1/UNP_MT + 1/UNP_HT +1/UNP_AT +1/UNP_SPG), где COUNT_TYPE - число слагаемых в знаменателе, если игрок играл на всех типах техники будет 5

5. Пересчитываем итоговый UNP в XTE

XTE = supToxte(100 - UNP)

 

Ниже исходник расчета из NetStatisticsModules(NSM), в коде используются точные расчеты, т.е. XTE дробный и преобразование рейтингов делается без округления дробной части:

 

 


#params = {'id': {'b':int, 'dmg': int, 'frg': int}, ...}
    def XTE(self, params):
        if isinstance(params, dict):
            typesBAT = {}
            typesUNP = {}
            for tag in vehicles.VEHICLE_CLASS_TAGS:
                typesBAT[tag] = {}
                typesUNP[tag] = {}
                for level in range(1,11):
                    typesBAT[tag][level] = typesUNP[tag][level] = 0
            for id, stat in params.items():
                if stat['dmg'] and stat['frg'] and stat['b'] >= 10:
                    stat['id'] = id
                    xte = self.xte(stat)
                    if xte:
                        vehicle = vehicles.getVehicleType(int(id))
                        tag = set(vehicles.VEHICLE_CLASS_TAGS.intersection(vehicle.tags)).pop() 
                        typesBAT[tag][vehicle.level] += stat['b']
                        typesUNP[tag][vehicle.level] += float(stat['b']) / (100 - self.specificRating(xte, 'sup'))
            tags = finalUNP = 0
            for tag in typesBAT:
                levels = levelsUNP = 0
                for level in typesBAT[tag]:
                    if typesBAT[tag][level]:
                        levelsUNP += typesUNP[tag][level] * level / typesBAT[tag][level]
                        levels += level 
                if levels:
                    finalUNP += levelsUNP / levels
                    tags += 1
            return self.globalRating(100 - tags / finalUNP, 'sup', True) if finalUNP else 0.0

 

 

Примеры циферок не округленных XTE для разных акков:

*** StranikS_Scan
***  66.5583795534
*** MoDoDeJl
***  64.9704614437
*** X0TABbICH
***  66.4041503497
*** aBaPu9l_Mo3ra
***  88.4731847901
*** Straik
***  99.4067306403
*** Andre_V
***  33.4512309594
*** NooBool
***  52.2176230329

Edited by StranikS_Scan
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

В последнее время пользовался Юшиным модом, но тут решил залить от Амвея921 и... не нашёл хТЕ в статистике. Давненько что-то как-то включал, но сейчас не могу вспомнить и найти где я это делал. Правильно ли я понимаю, что мне надо найти файл конфигурации и там что-то изменить? Где и как он называется?

Спасибо!

 

///UPD: Эвристический анализ вывел в нужное место) Пользуйтесь:

  1. Находится тут  \res_mods\configs\xvm\ZzZzZ
  2. Файл xvm.xc описывает все остальные файлы в этой папке
  3. Для включения счётика xTE ищите файл userInfo.xc
  4. И там в 37 строчку впишите true
  5. Сохранить и фапать

image.png.9a06386455ad00f1c8eb00a51bf489d7.png

Edited by BIGBAM
UPD

Share this post


Link to post

Short link
Share on other sites

Объясните как сделать фиолетовую стату , не могу понять? Думал, что все дело в хте, сыграно на 46 танках из них 25 фиолетовый хте , 12 голубых, 6 зеленых, 3 желтых, 0 коричневых и красных ,1 к боев вин8 76=24хх. Смотрю в бою танк фиолетовый вин 3300, 6к боев, захожу на стату 37 танков 1 красный хте, 2 коричневых,9 желтых, 7 зеленых, 7 голубых, 11 фиолетовых. Как так, у него 29% такноф с фиолетовой статой  и он фиолетовый,у меня 54% танков с фиолетовой статой и я на грани от зеленого до голубого?

В чем прикол, я точно что то  не  так понимаю? Правда может еще немного не в той ветке задал вопрос )

Edited by роми4
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
1 час назад, роми4 сказал:

Объясните как сделать фиолетовую стату , не могу понять? Думал, что все дело в хте, сыграно на 46 танках из них 25 фиолетовый хте , 12 голубых, 6 зеленых, 3 желтых, 0 коричневых и красных ,1 к боев вин8 76=24хх. Смотрю в бою танк фиолетовый вин 3300, 6к боев, захожу на стату 37 танков 1 красный хте, 2 коричневых,9 желтых, 7 зеленых, 7 голубых, 11 фиолетовых. Как так, у него 29% такноф с фиолетовой статой  и он фиолетовый,у меня 54% танков с фиолетовой статой и я на грани от зеленого до голубого?

В чем прикол, я точно что то  не  так понимаю? Правда может еще немного не в той ветке задал вопрос )

 

Конечно не в той ветке, тебе надо писать в ветку телепатов.

  • Upvote 1
  • Downvote 2

Share this post


Link to post

Short link
Share on other sites
1 час назад, StranikS_Scan сказал:

 

Конечно не в той ветке, тебе надо писать в ветку телепатов.

Ну понятно, ты же теоретик . Еще набиваешь сообщения. Лучше бы вообще ни чего  писал ,твоя стата на этом сайте не упала бы

Edited by роми4
  • Downvote 2

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...