@Guldan @Moonya
Был реализован функционал фильтрации по количеству ПТС на Олимпе.
Предлагаю его доработать. Включить в выборку еще % вин рейта, и так же искал ближайший ПТС.
Что я имею ввиду:
Например залетает волна:
1. Вася 175 ПТС вин рейт 57%
2. Вестник 98 ПТС вин рейт 34%
3. Гул 360 ПТС вин рейт 98%
4. Дан 460 ПТС вин рейт 80%
5. Петя 400 ПТС вин рейт 65%
6. Илья 460 ПТС вин рейт 76%
Чтобы арены были такие:
1. Гул + дан
2. Петя + Илья
3. Вася + Вестник
То есть мы:
1. получаем список всех игроков в массиве.
2. Дальше мы его разбиваем на зоны ПТС, которые вы сделали. Допустим у каждой зоны будет свой массив.
3. Далее в каждом массиве мы ищем сначала самый большой вин рейт, когда его находим, то берем его значение и исходя ищем ближайший к нему вин рейт в этом же массиве с допуском в разнице 20% и не больше отличия чем +/- 100-200 ПТС например . Если находим, то берем его.
4. Если не находим по ближайшему вин рейту, то ищем по ближайшему ПТС и берем его.
То есть на примере выше:
Мы берем Гул + Дан, но если бы например Дан не было, то мы бы взяли к нему пару Гул + Илья
Моя задача была донести свою идею, скорее всего такой алгоритм я бы в прод не лил (не нравится разбитие на несколько массивов). Хотя у вас там не такие уж большие обьемы данных, поэтому мб и так норм. Но надеюсь задумку получилось вам донести.
Я не утверждаю, что такая выборка поможет решить все проблемы, но как минимум она поможет получать клиентам менее болезненный опыт, потому что они будут драться плюс минус со своим уровнем противника. Потому что как мне кажется, то бустера от не бустера отличает % вин рейта, а не ммр.
Например:
Чел 10к ммр:
1. на 2к ммр будет иметь вин рейт 95%
2. на 10к ммр он будет иметь ~50% вин рейт
Будет ли он еще считаться бустером на 10к? Думаю нет
Был реализован функционал фильтрации по количеству ПТС на Олимпе.
Предлагаю его доработать. Включить в выборку еще % вин рейта, и так же искал ближайший ПТС.
Что я имею ввиду:
Например залетает волна:
1. Вася 175 ПТС вин рейт 57%
2. Вестник 98 ПТС вин рейт 34%
3. Гул 360 ПТС вин рейт 98%
4. Дан 460 ПТС вин рейт 80%
5. Петя 400 ПТС вин рейт 65%
6. Илья 460 ПТС вин рейт 76%
Чтобы арены были такие:
1. Гул + дан
2. Петя + Илья
3. Вася + Вестник
То есть мы:
1. получаем список всех игроков в массиве.
2. Дальше мы его разбиваем на зоны ПТС, которые вы сделали. Допустим у каждой зоны будет свой массив.
3. Далее в каждом массиве мы ищем сначала самый большой вин рейт, когда его находим, то берем его значение и исходя ищем ближайший к нему вин рейт в этом же массиве с допуском в разнице 20% и не больше отличия чем +/- 100-200 ПТС например . Если находим, то берем его.
4. Если не находим по ближайшему вин рейту, то ищем по ближайшему ПТС и берем его.
То есть на примере выше:
Мы берем Гул + Дан, но если бы например Дан не было, то мы бы взяли к нему пару Гул + Илья
Моя задача была донести свою идею, скорее всего такой алгоритм я бы в прод не лил (не нравится разбитие на несколько массивов). Хотя у вас там не такие уж большие обьемы данных, поэтому мб и так норм. Но надеюсь задумку получилось вам донести.
Я не утверждаю, что такая выборка поможет решить все проблемы, но как минимум она поможет получать клиентам менее болезненный опыт, потому что они будут драться плюс минус со своим уровнем противника. Потому что как мне кажется, то бустера от не бустера отличает % вин рейта, а не ммр.
Например:
Чел 10к ммр:
1. на 2к ммр будет иметь вин рейт 95%
2. на 10к ммр он будет иметь ~50% вин рейт
Будет ли он еще считаться бустером на 10к? Думаю нет