Во-первых, немного теории: Вз - взаимопонимание, отражает расстановку игроков в зависимости от любимого стиля каждого игрока. Расчитывается как сумма бонусов каждого игрока отправленного на игру состава. Бонус игрока стартового состава: +2 за совпадение стиля игры с любимым стилем игрока +6 за совпадение любимого стиля игрока с любимым стилем соседнего игрока (у всех, кроме 1 и 11 игроков 2 соседа) -2 за коллизию любимых стилей игрока и соседа Бонус игрока запаса: +2 за совпадение стиля игры с любимым стилем игрока Итоговое значение Вз отображается в итоговом протоколе. Никаких погрешностей при расчете нет! Раньше я писал обратное, но теперь выяснил, что причиной "погрешности" являются игроки запаса. Главная проблема определения любимых стилей заключается в том, что значение взаимопонимания в матче не рассчитывается динамически, а хранится в итоговом протоколе в виде константы. В случае каких-либо багов в игре техподдержка может изменять состав команды в матче (обычно это касается запасных), не меняя при этом значение взаимопонимания в протоколе. Примерно каждая десятая команда имеет одну или более таких игр, которые не позволяют найти решение. Еще одна проблема - реинкарнация игроков. Уже обнаружены игроки, уходившие на пенсию неоднократно. Например, игрок: http://virtualsoccer.biz/player_events.php?num=9 в первой своей жизни имел любимый стиль британь, после реинкарнации у него любимый стиль изменился на нормальный. Не могу также утверждать, что никто из игроков не подвергался "ручным" изменениям любимого стиля. Первый вывод из вышесказанного: именно эти проблемы не позволяют быстро определить всех играющих игроков лиги. Второй вывод: определенный стиль любого игрока - величина вероятностная. У 99% игроков - эту вероятность можно считать бесконечно близкой к единице и не париться особо по этому поводу. Дальше про методику определения. Все множество методик при описании в терминах математики сводятся или являются разновидностями одного метода - метода решения систем уравнений. В принципе большинству думаю уже стала понятна суть метода и можно дальше не продолжать. Рассмотрим общий пример: Запишем уравнение взаимопонимания двух игр в виде: a1=f1(x1.1,x2.1)+f1(x2.1,x3.1)+..+f1(x10.1,x11.1)+f2(x1.1,s1)+...+f2(x16.1,s1) a2=f1(x1.2,x2.2)+f1(x2.2,x3.2)+..+f1(x10.2,x11.2)+f2(x1.2,s2)+...+f2(x16.2,s2) где: a1,a2 - значения взаимопонимания в итоговом протоколе f1 - функция 2-х аргументов: стили двух соседних игроков Примеры расчета: f1("спартак","норма")=0 f1("британь","британь")=12 f1("британь","катеначчо")=-4 думаю суть понятна f2 - аналогичная функция для определения совпадения стиля игрока и стиля игры. x1.2 - стиль игрока на первой позиции во второй игре в случае двух абсолютно разных игр никакой пользы от такой системы нет, но все меняется, когда уравнения совпадают за исключением одного-двух аргументов. В случае s1=s2, x1.1=x1.2 (один игрок на первой позиции в обеих играх), x2.1=x2.2 ... x15.1=x15.2 и разных игроках на позиции 16 получаем упрощенное выражение: а1-а2=f2(x16.1,s1)-f2(x16.2,s1) Выражение а1-а2 может иметь в данном случае только три значения -2,0,2. Если получилось любое другое - произошла ошибка либо в записи игры, либо как минимум одна игра является "баговой" и использовать эту систему для определения нельзя. К счастью, последние ситуации встречаются довольно редко. значение -2 однозначно дает понять, что x16.2=s1, а x16.1<>s1, говоря языком всола игрок на 16 позиции во второй игре имеет любимый стиль равный стилю игры, а игрок на 16 позиции в первой игре имеет любимый стиль не равный стилю игры. значение 0 говорит о том, что система имеет два решения. Здесь либо x16.2=s1 и x16.1=s1, либо x16.2<>s1 и x16.1<>s1. В данном случае результат менее информативен. значение 2 однозначно дает понять, что x16.1=s1, а x16.2<>s1, говоря языком всола игрок на 16 позиции в первой игре имеет любимый стиль равный стилю игры, а игрок на 16 позиции во второй игре имеет любимый стиль не равный стилю игры. Точно такой же прием можно применить для системы 3-х и более уравнений. Более информативный вариант - замена игроков основы. Делается все аналогично приведенному выше примеру, только вариантов для рассмотрения будет несколько больше. Что касается игры разными стилями для определения количества игроков каждого стиля без конкретной привязки к игроку - это просто малоинформативные уравнения, которые использовать не имеет смысла. Ну и главный вопрос - почему именно этот метод? Все просто, он позволяет определять всю команду очень быстро без каких-либо ограничений. Т.е. нет необходимости играть строго определенным составом, пробовать разные стили, использовать пары игроков и т.п. дурацкие ограничения. На всякий случай оставил старые методики со всеими ошибками для истории: |