首页 > 解决方案 > 问答游戏的排名算法

问题描述

我正在构建一个琐事问答游戏,我想根据人们的答案对他们进行排名。

这些问题是基本的琐事,人们可以回答 A、B、C 或 D,然后它们是对还是错。

我想根据他们的答案对他们进行排名,但在某些特定情况下存在问题:

玩家 1 回答了 10 个问题,得到了 5 个正确答案 玩家 2 回答了 6 个问题,得到了 5 个正确答案

在这种情况下,哪个应该排名更高?

我应该使用正确答案的总数还是比例或正确答案来对人们进行排名?是否有一种算法可以使用这两种数据来提供基于这两个指标的公平排名?在技​​术方面,如何组织数据以便我能够在不扫描所有用户数据库的情况下判断玩家的排名?

如果您需要更多详细信息,请告诉我。谢谢你的帮助。

标签: algorithmranking

解决方案


你可以对错误答案的人进行惩罚,对正确答案的人-1给予奖励+3。作为一个随机选择答案的人,预期点将为零,因此1/4 * 3 + 3/4 * -1 = 0.

在技​​术方面,如果每个人有两列包含错误和正确答案的数量,您可以计算每个人的分数,然后将它们排序,如下所示:

SELECT person_id, (wrong_num * (-1) + correct_num * 3) as rank
FROM scores
Order by rank

推荐阅读