Алгоритм для получения N наиболее подходящих значений на основе числа успешных / неудачных и успешных / неудачных дат
У меня есть список прокси-серверов. Есть список ProxyServer
Предметы. Элемент содержит прокси Address
сам, SucceedCount
, FailedCount
, LastSucceedDate
, LastFailedDate
, Если операция загрузки прошла успешно, SucceedCount
увеличивается, если не удалось - FailedCount
, Итак, список предметов выглядит так (LastFailedDate
не представлен):
Мне нужно реализовать простой алгоритм, чтобы получить N лучших прокси из этого списка. Лучший прокси означает:
- много
SucceedCount
это хорошо - много
FailedCount
плохо - прокси с успешным / неудачным 0/0 лучше, чем 0/10
- дата последнего успеха / неудачи должна иметь некоторый вес, например, прокси с верхом
SucceedCount
/FailedCount
10000/100, ноLastSucceedDate
месяц назад считается достаточно плохим.
Надеюсь, у вас появилась идея получить лучший N прокси на тот момент. Я думаю, что есть некоторые известные алгоритмы для подобных задач. Похоже, сам алгоритм может быть что-то вроде .OrderBy()
цепь.
SucceedCount
, FailedCount
, LastSucceedDate
, LastFailedDate
поля могут быть заменены любыми другими, удалены или могут быть дополнены другими, мне просто нужен способ достижения цели.