我正在开发一个众包应用程序,它将让来自不同特许经营权的大约 64 个虚构的强人/女强人相互对抗,并尝试确定谁是最强的。(想想“蝙蝠侠大战蜘蛛侠”的大篇幅)。用户将一次在两个之间选择任何给定比赛的获胜者。
在研究了许多排序算法之后,我发现这篇很棒的SO 帖子概述了 ELO 评级系统,这看起来绝对完美。我已经阅读了系统并了解如何在比赛中奖励/减去积分,以及如何根据过去的结果计算任意两个角色之间的表现评级。
我似乎找不到任何有效且明智的方法来确定在给定时间将哪两个角色相互对抗。自然它会随机开始,但很快就会累积或降低积分。我们可以预期会有很多分歧,但如果我设计正确,也会有大量的用户参与。
所以想象一下,你在投了 50,000 票后到达了这个功能。鉴于我们可以在后台预期各种非传递性结果,并且与性能评级有相当大的偏差,有没有一种方法可以计算出我最需要更多数据的比赛?这似乎并不像在排序列表中选择两个相邻的具有最接近分数的字符那样简单,或者只关注列表的顶部。
有 64 名参赛者(是的,我确实考虑并拒绝了一个括号!),我不担心在每次比赛后重新计算性能评级。我只是不知道如何选择下一个,因为我们将不知道每个选民的偏见和最喜欢的角色。