我有一个代理服务器列表。有一个ProxyServer
项目列表。Address
项目本身持有代理, SucceedCount
, FailedCount
, LastSucceedDate
, LastFailedDate
. 如果加载操作成功,SucceedCount
则递增,如果失败 - FailedCount
。所以项目列表看起来像这样(LastFailedDate
未显示):
我需要实现一个简单的算法来从这个列表中获得 N 个最佳代理。最佳代理意味着:
- 许多
SucceedCount
是好的 - 很多
FailedCount
都是坏的 - 成功/失败 0/0 的代理优于 0/10
- 上次成功/失败的日期必须有一定的权重,例如带有 top
SucceedCount
/FailedCount
10000/100 的代理,但LastSucceedDate
一个月前已经足够糟糕了。
我希望你有想法在那一刻获得最好的 N 代理。我想有一些已知的算法可以完成这样的任务。看起来算法本身可以像.OrderBy()
链一样。
SucceedCount
, FailedCount
, LastSucceedDate
,LastFailedDate
字段可能被任何其他的替换,删除,也可能被其他的补充,我只需要达到目标的方式。