algorithm - 如何根据比赛结果对一组人进行排名?

标签 algorithm ranking

我脑袋有点晕了。

我有一群人。他们在计时事件中相互竞争。每次比赛都会产生一组结果,显示每个人,按他们的时间排名。

从这个数据中,我可以看到(比如说)A 在 48 次 session 中有 73% 的时间打败了 B。简单。

不过,假设我有 A B C D E F G 人。对于任何配对,我都可以通过将它们相互比较来了解谁是胜利者,但我如何得出“最准确”的总体排名?

是否需要某种迭代过程?任何提示表示赞赏,我真的不知道从哪里开始!

(如果重要的话,每场比赛不一定是所有参赛者的完整集合。)

我可能想通过考虑它们的相对时间来进一步改进事物,而不仅仅是“A 打败 B”或“B 打败 A”。 “A 比 B 快 6.3 秒”等等。但我认为,让我们暂时保持简单吧!

如果需要,很乐意提供更多信息,请告诉我什么!

非常感谢!

最佳答案

作为第一步,我会实现 elo 评分系统。

http://en.wikipedia.org/wiki/Elo_rating_system

它会做得很好。您可以使用 Glicko 或 Trueskill 等更复杂的系统,但我会先使用 Elo,看看它是否适合您。

关于algorithm - 如何根据比赛结果对一组人进行排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6603891/

相关文章:

algorithm - 快速检查是否设置了奇数位的方法?

c# - 有没有办法让 "peeking"成为 MoveNext(),或者我怎样才能解决这个 fencepost 问题?

在列表中查找最大值(和索引)的 Pythonic 方法

mysql 排名变量

mysql - 带有等级变量的 row_number 不起作用

python - Dataframe 中多列的排名

algorithm - 为什么 WSAT 优于模拟退火?

javascript - 按屏幕参数排序的文件

确定对象邻居的算法

php - 转到我在表中的排名