Цифровое ассорти
Блог

Virtus.pro не прошла на Инт по очкам. А должна была, но помешала математика Айсфрога

Подсчитываем.

От редакции: этот пост писался утром 15 августа – когда только появилась информация о различиях в рейтинге DPC на Ликвипедии и сайте Доты. Теперь Valve решила, что Virtus.pro не поедет на Инт напрямую. В посте доказательства того, что это решение ошибочно.

* * *

Пользователи Реддита внезапно обнаружили страшное – VP не выходит на Инт, согласно сайту Доты.

Не беспокойтесь: это просто баг. У Virtus.pro не может быть 1019 очков. Давайте разберем подробно.

Дарим сочные скины! С тебя – участие в опросе

Подпишись на нашу телегу киберспорта и получай все новости оперативно

Открываем правила Dota Pro Circuit на том же сайте Доты. Там четко прописан штраф за замену – 15% от заработанных очков.

Теперь перейдем на вкладку команды Рамзеса. Что мы там видим?

Давайте проверим расчеты:

1. 120 + 78 = 198.

2. 198 * 15% = 29,7.

3. 198 – 29,7 = 168,3.

4. 168,3 + 20 = 188,3.

5. 188,3 * 15% = 28,245.

6. 188,3 – 28,245 = 160,055.

7. 160,055 + 500 + 360 = 1020,055.

В итоге 1019 очков не сходятся с их же расшифровкой – баг очевиден. По текущим правилам Доты (и математики), у VP никак не может быть 1019 баллов. Корректный вариант отображается на Ликвипедии.

На Реддите зафорсили теорию, что Valve считает очки строго в целых числах. Хорошо, давайте повторим расчеты с округлением:

1. 120 + 78 = 198.

2. 198 * 15% = 29,7.

Округляем: 198 – 30 = 168.

3. 168 + 20 = 188.

4. 188 * 15% = 28,2.

Округляем: 188 – 28 = 160.

5. 160 + 500 + 360 = 1020.

И снова никаких 1019. Но самое главное: в правилах Dota Pro Circuit никакое округление не указано. Если Айсфрог не изобрел свою алгебру, VP точно поедет на Инт.

Еще одно косвенное подтверждение выхода Virtus.pro – анонс от Викрама Редди (энтузиаста, близкого к Valve, который первым выпускает в паблик большинство новостей про Доту).

Wykrhm: Самая важная серия для Fnatic в DPC 2021-2022... Если они ее не выиграют, то могут потерять свой инвайт на TI за счет 0,05 балла... Сумасшествие! Смотрим!

И в целом к таблице на сайте Доты есть вопросы. До вечера 15 августа у OG было 1694 очка вместо 1930, у Aster – 1690 вместо 1610, а у TSM, Soniqs и Thunder Awaken до сих пор стоят неактуальные логотипы. Но даже сейчас Fnatic все еще выше VP. Кажется, Valve не беспокоится о своем сайте.

True Sight (и игроки) равняются на Marvel. Вместо документалки теперь супергеройские цитаты

Мы знаем, почему у Dire винрейт в два раза выше, чем у Radiant

Подпишись на нашу телегу киберспорта и получай все новости оперативно

💧Смотри наше шоу «На фонтане»!

Конечно!
86%
Outsiders (Virtus.pro)
Нет, Fnatic сильнее!
14%
Fnatic
61 комментарий
Возможно, ваш комментарий нарушает правила, нажмите на «Отправить» повторно, если это не так, или исправьте текст
Пишите корректно и дружелюбно. Принципы нашей модерации
Реклама 18+
Вообще если не указано, что расчеты проводятся в целых числах, то они должны проводиться в вещественных, это факт
+11
0
+11
Гриша, Valve (почему-то) округляет до целых чисел в меньшую сторону. Проверить это ты мог, просто кликнув на очки EG. Или посчитав очки QC (теперь Soniqs). Всегда пожалуйста
+9
-3
+6
Ответ Ruslan Bektashev
В другую сторону округлять не пробовали?
В какую? Правила округления в математике четко указаны: до 0,5 - в меньшую сторону, при >=0,5 - в большую.
+6
0
+6
Вообще, по-хорошему, Фнатикам вообще за этот мажор давать очки нельзя или точно неполностью, типа если челов в итоге заквалит на инт команда, которая на этот момент уже на него прошла, то прецедент весёлый будет.
Fnatic и не получила очки за мейджор, если что
+4
0
+4
Кстати, Ром, ты неправ. Если бы Valve так округляла, то у VP вообще был бы 1021 балл: 120 + 78 = 198 198*15% = 29,7 198-29 = 169 169+20 = 189 189*15% = 28,35. 189-28 = 161 161+360+500 = 1021.
Не вычитай 15%, а сразу умножай на 85%.
Во многих играх ресурсы округляются всегда вниз. Заработал 345.6 золота - получил 345. Это даже близко не "новая математика".
+4
0
+4
В другую сторону округлять не пробовали?
+4
-1
+3
Ну, тогда это тем более особая математика, которая не коррелирует с правилами. Потому что, по сути, в зависимости от метода подсчета штрафов меняется результат. Еще одно доказательство бредовости идеи отбрасывания дробной части.
Ну справедливо тут лишь то, что округление должно обязательно указываться в правилах.
А вот про "особую математику" - натянуто. Округление вниз используется сплошь и рядом (в том числе, чтоб игроки не злоупотребляли округлением). Это я как разработчик игр пишу.
+3
0
+3
Как выяснилось, логика у Valve действительно именно такая. Но давайте честно: виртуальные очки - это совсем не реальные яблоки или бумажные модельки. Очень мягко говоря, неочевидно, что обычные виртуальные числа НЕЛЬЗЯ делить. Мы не знаем, задумывалось ли так изначально, или Valve просто не захотела признать косяк в расчетах. Но то, что это не прописано в правилах - запредельный нонсенс.
Математика над виртуальными очками определяется valve. Округлять, нет ли. И если да, то как.

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

Ещё отметил бы, что это работает так, скорее, умышленно, а не по ошибке. По умолчанию в ЯП (с++, python навскидку), если число приводится к целому, то там идёт отбрасывание дробной части. Таким образом с простым отбрасыванием получилось бы 1020.

Вы считаете, что это не совсем правильно - ну что ж, пожалуйста.
То, что это не прописано в правилах, это, скорее, некоторая недоработка в описании, а не "запредельный нонсенс", как по мне. Вероятно, в 99% случаев это ни на что не влияет, когда счета идут на 1000+ очков.

Мб, несколько обидно, что отняли гарантированное место у региона, получается... Но что есть.
+2
0
+2
Ответ Paikese Poole
Бред. В программировании округление вещественного числа в меньшую сторону является стандартным при преобразовании вещественного числа в целое. Пенять тут можно максимум на то, что правила округления не прописаны в регламенте - ну а кто вам мешал раньше указать на это? Пока проблема не касается лично тебя - её как бы и не существует вовсе, лол, нда.
В программировании и моделировании много чего много в каких случаях считается стандартным.

Вопрос в том, что правила DPC прописаны достаточно четко - и ни про какое округление в них нет ни слова. Как команды должны были догадаться, что Valve просто не использует дроби, потому что гладиолус?
+2
0
+2
Ответ wiz
А с чего взяли, что отдельные очки вообще делимы? Это на усмотрение организатора. И как бы на этом всё. *Хотя, вероятно, valve стоило (ит) детализировать чуть-чуть эти нюансы. Если считать, что очки не могут быть нецелыми, то получается такое: 1. 120 + 78 = 198. 2. 198 * 15% = 29,7 (30) // 198 – 30 = 168 3. 168 + 20 = 188 4. 188 * 15% = 28,2 (29) // 188 – 29 = 159 5 159 + 500 + 360 = 1019. Более простой для восприятия вариант подобной логики: ты должен полтора яблока, но обладаешь 2-мя и не имеешь ножа, поэтому вынужден отдавать оба.
Как выяснилось, логика у Valve действительно именно такая. Но давайте честно: виртуальные очки - это совсем не реальные яблоки или бумажные модельки. Очень мягко говоря, неочевидно, что обычные виртуальные числа НЕЛЬЗЯ делить.

Мы не знаем, задумывалось ли так изначально, или Valve просто не захотела признать косяк в расчетах. Но то, что это не прописано в правилах - запредельный нонсенс.
+2
0
+2
Ответ Dmitry Maltsov
Кста мб это на ликвипедии ошибка по баллам у OG, на ликвипедии они получили полные баллы за мажор, хотя играли с заменой, так что в любом случае должны были получить штраф. А отбрасывание дробной части странно, но они так делали для всех команд, и тогда действительно получается 1019
OG:
–272 — Ceb stood in during ESL One Stockholm 2022. The penalty was waived as a result of circumstances beyond the team’s control.

И на Ликвипедии, и на сайте Доты указано, что OG не получила штраф за Себа в Стокгольме. Потому что эта замена была по причинам, независящим от команды.

Арлингтон - ровно такой же случай. Поэтому OG вряд ли получит штраф.

Что касается отбрасывания дробной части: очень похоже, что это банальный баг сайта. А в целых числах баллы указаны для удобства юзеров. Кто ж знал, что этот баг заметят...
+1
0
+1
первый раз что ли у валв табличка с поинтами не правиль но заполнена???
+1
0
+1
Вы упустили, что методов округления чисел есть три (3)
+1
0
+1
Ответ mcmasik
Вы видимо не знакомы с округлением по модулю 2)
Я прекрасно знаю, что такое округление по модулю. Проблема в том, что использовать подобные приемы в качестве дефолтных, без прописывания в правилах, - это абсолютный нонсенс.
+1
0
+1
Скорей всего это округление до ближайшего значения в большую сторону. Дело было как-то так:

https://onlinephp.io/c/60c3c

$result = takeMyPoints(takeMyPoints(120+78)+20)+500+360;

function takeMyPoints($num){
return $num - ceil(($num * 0.15));
}

echo $result;
+1
0
+1
Ответ gazm9c
Скорей всего это округление до ближайшего значения в большую сторону. Дело было как-то так: https://onlinephp.io/c/60c3c $result = takeMyPoints(takeMyPoints(120+78)+20)+500+360; function takeMyPoints($num){ return $num - ceil(($num * 0.15)); } echo $result;
takePoints = (points, sub) => sub.reduce((sum, subCurrent, subIndex, array) =>
(sum + points.reduce((sum, current, index) =>
subCurrent > index && (array[subIndex - 1 ] ^ 0) <= index ? sum + current : sum, 0)) * 0.85, 0)
+ points.reduce((sum, current, index) => sub[sub.length - 1] <= index ? current + sum : sum, 0)

console.log(takePoints([120, 78, 20, 500, 360], [2, 3])) // 1020.055
+1
0
+1
В какую? Правила округления в математике четко указаны: до 0,5 - в меньшую сторону, при >=0,5 - в большую.
В математике существует куча правил округления, например, "до ближайшего четного". А можно просто отбрасывать дробную часть, всегда округляя вниз -так обычно считаются проценты по вкладам. А можно всегда округлять вверх, так считаются проценты по кредитам.
Да простой порядок действий при расчете, скажем, повышенного кэшбэка по карточной операции может существенно изменить размер кэшбэка: можно сначала округлить вниз кэшбэк в размере 1% до целого рубля, а потом умножить на 5, а можно сначала умножить сумму операции на 5, а потом округлять 1% от новой суммы вниз до целого рубля.
Другое дело, что у VP есть повод для судебного разбирательства
+1
0
+1
Ответ Azzee Charyev
Не понял, а почему не получила? Там же 2 игрока из фнатиков
Три - Дубу, Брайл, Тимадо. В этом и причина)
+1
0
+1
Ответ gazm9c
Скорей всего это округление до ближайшего значения в большую сторону. Дело было как-то так: https://onlinephp.io/c/60c3c $result = takeMyPoints(takeMyPoints(120+78)+20)+500+360; function takeMyPoints($num){ return $num - ceil(($num * 0.15)); } echo $result;
Как выяснилось, логика у Valve следующая: очки не делятся вообще. У тебя или есть целое очко, или его нет. И никакие правила округления тут не работают - точнее, в любой ситуации округление всегда в меньшую сторону.

Почему это не прописано в правилах? Потому что. Как до этого можно было догадаться? Ну, только работая в Valve, подозреваю.
+1
0
+1
Бред. В программировании округление вещественного числа в меньшую сторону является стандартным при преобразовании вещественного числа в целое. Пенять тут можно максимум на то, что правила округления не прописаны в регламенте - ну а кто вам мешал раньше указать на это? Пока проблема не касается лично тебя - её как бы и не существует вовсе, лол, нда.
+2
-1
+1
Ответ wiz
Математика над виртуальными очками определяется valve. Округлять, нет ли. И если да, то как. Именно для меня нет особой разницы между тем, как они именно они считают: все варианты вполне ок (и с округлениями вверх, и с округлениями вниз, и без округлений). Также, глядя на таблицу распределения очков (а там нет каких-то десятых, сотых), я бы по умолчанию считал, что там не может быть не натуральных чисел. В комментарии, я лишь описал предположительную их логигу. И, вероятно, если бы мне надо было сделать свою реализацию подобной логики, сделал бы так же. Ещё отметил бы, что это работает так, скорее, умышленно, а не по ошибке. По умолчанию в ЯП (с++, python навскидку), если число приводится к целому, то там идёт отбрасывание дробной части. Таким образом с простым отбрасыванием получилось бы 1020. Вы считаете, что это не совсем правильно - ну что ж, пожалуйста. То, что это не прописано в правилах, это, скорее, некоторая недоработка в описании, а не "запредельный нонсенс", как по мне. Вероятно, в 99% случаев это ни на что не влияет, когда счета идут на 1000+ очков. Мб, несколько обидно, что отняли гарантированное место у региона, получается... Но что есть.
Ну, это не некоторая недоработка, это огромный косяк, который стоил нашему региону слота.
+1
0
+1
Как я говорил где-то ранее, что как бы валв не были как дамблдор в конце философского камня. "100 очков гриффиндору(фнатик)!"
+1
0
+1
В какую? Правила округления в математике четко указаны: до 0,5 - в меньшую сторону, при >=0,5 - в большую.
Тут у них скорее всего не округление, а тупо отбрасывание дробной части.

4. 188 * 85% = 159,8 -> 159
+1
0
+1
Да, косяк валв. Сейчас они похмелятся, отойдут от выходных и к пятнице поправят.
+1
0
+1
Ну, удачи Valve в продаже компендиумов с таким отношением к юзерам.
Да как бы вальве с доты имеет не так уж и много. И это далеко не секрет
0
0
0
Или Valve решила, что не будет учитывать дроби в принципе. И не округлять ничего, а просто отбрасывать их. Не особо и новая математика
Да нет, вполне себе новая. Потому что ничего не уточнять в правилах и округлять 159,8 до 159 вопреки законам алгебры - это нонсенс.
0
0
0
В программировании и моделировании много чего много в каких случаях считается стандартным. Вопрос в том, что правила DPC прописаны достаточно четко - и ни про какое округление в них нет ни слова. Как команды должны были догадаться, что Valve просто не использует дроби, потому что гладиолус?
Значит, регламент говно, раз в нём не указаны принципы округления. Кто мешал озаботиться этой проблемой раньше? Как верно заметили в другой новости, это очередное доказательство того, что в "киберспорте" от спорта только название, несмотря на многомиллионные бюджеты.
+1
-1
0
Я прекрасно знаю, что такое округление по модулю. Проблема в том, что использовать подобные приемы в качестве дефолтных, без прописывания в правилах, - это абсолютный нонсенс.
Так вольво решает что и как будет. И им абсолютно класть на каких-то юзеров и их расчеты
0
0
0
Вы упустили, что методов округления чисел есть три (3)
Я знаю, как минимум, пять реально существующих/используемых. И от себя еще стопицот могу придумать.
0
0
0
Ответ Боба Фетт
Я знаю, как минимум, пять реально существующих/используемых. И от себя еще стопицот могу придумать.
Молодец, поздравляю!
0
0
0
Укажите причину бана
  • Оскорбление
  • Мат
  • Спам
  • Расизм
  • Провокации
  • Угрозы
  • Систематический оффтоп
  • Мульти-аккаунтинг
  • Прочее
Пожаловаться
  • Спам
  • Оскорбления
  • Расизм
  • Мат
  • Угрозы
  • Прочее
  • Мультиаккаунтинг
  • Систематический оффтоп
  • Провокации
Комментарий отправлен, но без доната
При попытке оплаты произошла ошибка
  • Повторить попытку оплаты
  • Оставить комментарий без доната
  • Изменить комментарий
  • Удалить комментарий