Базовая мысль следующая: если за редкого игрока 20 менеджеров готовы заплатить больше 10 лямов, а купить, очевидно, может только один, то нужно в итоговую цену игрока включить желание и возможность менеджеров купить его за меньшую цену, чем его купили, но зато большую цену, чем у похожих игроков, найденных на i-ой итерации текущего алгоритма.
Самый простой вариант учета: при обработке трансфера, после срабатывания заявки на покупку игрока менеджером1 смотрим кто еще из менеджеров мог бы купить на текущий момент этого игрока, если бы его не купил менеджер1. Допустим менеджер2 предложил за игрока чуть меньше, но у него уже нет денег для покупки, так как купил кого-то подороже, значит, заявку менеджера2 не учитываем. У следующего менеджера3 ограничение на количество игроков сработало + это второй клуб, а игрок1 входит в число сильнейших, значит заявку менеджера3 не учитываем. А у следующего менеджера4 все ок, если бы менеджер1 не купил, то следующим, соответственно, купил бы менеджер4. Значит, добавляем в расчет цены, что игрока с такими же параметрами "купил" менеджер4. И так далее учитываем всех, кто подал заявки на этого игрока и на текущем ходе заявка могла бы сыграть.
Таким образом для всех игроков набирается пул заявок(далее ПулЗ), которые могли бы сыграть. И далее эти заявки должны учитываться в формуле расчета итоговой цены на игрока.
Как вариант, заявка из ПулЗ учитывается в i шаге, если цена в ней отличается от цены покупки меньше, чем на i%.
Пример. Игрока1 купили за 10010 (здесь и далее все в тыс.). Следующая заявка, которая сыграла бы, была на 10001, значит, она учтется на 1 шаге. Следующаяя заявка на 9500 учтется на 6 шаге, так как 10010*0.95=9509.5>9500>10010*0.94=9409.4.
По редким игрокам, которые очень редко появляются на трансфере, это даст более адекватную цену, а на однотипных игроков, которых много на трансфере, это практически не повлияет, так как для них сейчас находятся аналоги менее, чем за 10 шагов, то есть игроки из ПулЗ туда практически попадать не будут.
Базовая версия такая, может еще что-то докрутить можно
