我想通过制作一个游戏来对风景图像的排名进行排名,网站访问者可以对它们进行评分,从而找出人们认为最吸引人的图像。
这样做的一个好方法是什么?
你会 怎么 做?
如果您需要数字,那么我说的是一个每天访问量为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这样的常数)。
使用这种方法,您只需要为每个图片保留一个数字,这比将每个图片的各个等级彼此保持不变要少得多的内存占用。
编辑:根据评论增加了一些肉。
问题内容: 我有一个包含Quote对象的数组列表。我希望能够按名称,更改和更改百分比的字母顺序进行排序。如何排序我的数组列表? 问题答案: 创建一个合适的对象,它将根据你所需的条件比较两个项目。然后在你的上使用 。 如果以后要按其他条件排序,请使用不同的再次调用。
这是我的节点类: 我有一个单链表,需要使用插入排序进行排序。我对常规列表的插入排序有很好的理解,但对链表没有。我发现另一个帖子,一个用户说: 让我们考虑一下插入排序是如何工作的:它将列表“拆分”(理论上)为三组:已排序的子集(可能为空)、当前项和未排序的子集(可能为空)。排序当前项之前的所有内容。当前项之后的所有内容都可以排序,也可以不排序。算法检查当前项,并将其与下一项进行比较。请记住,当前项之
问题内容: 我有一个成员数组/切片: 我的问题是如何按,然后按。 问题答案: 使用sort.Slice(从Go 1.8开始可用)或sort.Sort函数对值的切片进行排序。 通过这两个功能,应用程序提供了一个功能,用于测试一个切片元素是否小于另一个切片元素。要按姓氏和名字排序,请比较姓氏和名字: less函数是使用带有sort.Slice的匿名函数指定的: less函数通过带有sort.Sort函
问题内容: 我有可能需要按1-n键排序的大文件。其中一些键可能是数字键,有些则可能不是数字键。这是一个固定宽度的柱状文件,因此没有定界符。 有没有一种很好的方法可以用Unix排序呢?使用一个键,就像使用“ -n”一样简单。我已经阅读了手册页并简短地搜索了Google,但是没有找到一个很好的例子。我将如何实现这一目标? 注意:由于文件大小可能,我排除了Perl。这将是不得已的办法。 问题答案: 使用
问题内容: 我在Java中有一个双打列表,我想按降序对ArrayList进行排序。 输入如下: 输出应该是这样的 问题答案: 那会做你想要的。请记住要导入!
问题内容: 在我可以排序的使用此声明: 我无法使用 Swift 重现相同的语句。我发现的只是使用。 问题答案: 您可以使用Swift的内置排序函数,也可以使用Swift数组,因为Swift数组是桥接的,因此可以直接从swift 调用。 使用Swift的功能: 或者,使用的:
我正在使用java lambda对列表进行排序。 我怎样才能反向排序呢?
问题内容: 我有这样的价值观: 我想按升序对每个值进行排序。我不想在集合之间进行排序,而是在每个集合中进行排序。 问题答案: 来自评论: 我想对每个集合进行排序。 这很容易。对于任何集合(或其他任何可迭代的对象),以排序顺序返回的元素列表: 请注意,这是给您一个,而不是一个。这是因为在数学和几乎每种编程语言中,集合的全部要点*都是无序的:集合和是同一集合。 您可能真的不想将这些元素排序为字符串,而