algorithm - 问答游戏的排名算法
问题描述
我正在构建一个琐事问答游戏,我想根据人们的答案对他们进行排名。
这些问题是基本的琐事,人们可以回答 A、B、C 或 D,然后它们是对还是错。
我想根据他们的答案对他们进行排名,但在某些特定情况下存在问题:
玩家 1 回答了 10 个问题,得到了 5 个正确答案 玩家 2 回答了 6 个问题,得到了 5 个正确答案
在这种情况下,哪个应该排名更高?
我应该使用正确答案的总数还是比例或正确答案来对人们进行排名?是否有一种算法可以使用这两种数据来提供基于这两个指标的公平排名?在技术方面,如何组织数据以便我能够在不扫描所有用户数据库的情况下判断玩家的排名?
如果您需要更多详细信息,请告诉我。谢谢你的帮助。
解决方案
你可以对错误答案的人进行惩罚,对正确答案的人-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
推荐阅读
- python - 熊猫数据框中行中的唯一文本
- javascript - 如何从传递给其兄弟组件的下拉框中获取 ref 值?
- assembly - RISC-V:PC 绝对值与 PC 相对值
- java - 线程“main”中的异常 java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version
- python - django比较时间字段
- sql - 新手 SQL 学习者(内连接)
- python - 元组中的字符串和整数值
- php - JSON:从另一个域检索 JSON 文件
- java - 如何在 Spark 任务执行器工作时将多个 json 对象存储在 Java 并发 Java 列表中
- linkedin - LinkedIn公司关注按钮不起作用