我想通过制作一个游戏来对风景图像的排名进行排名,网站访问者可以对它们进行评分,从而找出人们认为最吸引人的图像。
这样做的一个好方法是什么?
你会 怎么 做?
如果您需要数字,那么我说的是一个每天访问量为20,000次的网站上的一百万张图片。 我猜想为了争辩,一小部分人可能会玩游戏,可以说我一天可以进行2,000次人工排序操作!这是一个非营利性网站,终极好奇者会通过我的个人资料找到它:)
就像其他人所说的那样,排名1-10的效果并不理想,因为人们的级别不同。
与该问题 拾取A-或-B 方法是,其不保证该系统能传递(A可以打败B,但乙节拍C,和C节拍A)。 使用非传递比较运算符会破坏排序算法 。对于本示例,使用快速排序时,未选择为枢轴的字母将彼此错误地排名。
在任何给定时间,您都希望对所有图片进行绝对排名(即使其中一些/全部并列)。您还希望 除非有人投票,否则 您的排名不会改变。
我将使用 Pick A-or-B(或平局) 方法,但确定类似于Elo评分系统的排名,该系统用于2种玩家游戏(最初是国际象棋)中的排名:
Elo玩家评分系统将玩家的比赛记录与对手的比赛记录进行比较,并确定玩家赢得比赛的可能性。该概率因子根据每次比赛的结果来确定玩家的评分上升或下降多少点。当玩家击败等级较高的对手时,玩家的等级比击败等级较低的玩家时提高的更多(因为玩家应该击败等级较低的对手)。
Elo系统:
用图片替换“玩家”,您可以根据公式简单地调整两张图片的等级。然后,您可以使用这些数字分数进行排名。(这里的K值是锦标赛的“等级”。小型本地锦标赛是8-16,大型邀请赛/地区是8-32。您可以只使用20这样的常数)。
使用这种方法,您只需要为每个图片保留一个数字,这比将每个图片的各个等级彼此保持不变要少得多的内存占用。
编辑:根据评论增加了一些肉。