主旨
我正在实现一个主办健身比赛的网站,我需要一个很好的方法来生成“分数”或“排名”。
竞赛是如何运作的
比赛由来自给定健身房的一个或多个运动员/参赛者组成的团队,挑战来自一个或多个其他健身房的相同数量的参赛者。可以参赛的健身房数量没有任何限制--可能会有超过100家健身房参赛。根据不同的因素将分数分配给每个团队:时间、代表、最重的托举等。
在一场比赛中为每个团队分配分数是很容易的部分;当我们试图根据每个健身房的比赛历史来生成一个排名时,事情就会变得更有趣了。从直觉上看,在一场比赛中排名第一的球队应该比在不同比赛的其他5个健身房中排名第一的球队排名更高。
我想不出一个直观的、公平的排名机制。任何关于排名算法家族的具体想法或建议都将不胜感激。
发布于 2010-12-03 12:15:15
查看在光环中使用的TrueSkill来对玩家进行排名。http://research.microsoft.com/en-us/projects/trueskill/details.aspx ELO只处理1v1,而TrueSkill可以处理1个或多个玩家的团队以及多个团队。
如果你不想写任何代码,也有在线计算器。如果你想要代码示例,可以在F#中找到原件,Jeff Moser用C#和最近的PHP语言对其进行了重新编码。谷歌"Jeff Moser计算技能“
发布于 2010-09-08 00:48:34
如何看待每支球队“击败”它在特定比赛中排在上面的所有球队,并“输给”它排在下面的所有球队?然后,您可以随着时间的推移计算每个团队的ELO。
发布于 2010-09-08 01:15:10
如果你把比赛看做健身房。也许公平的排名取决于他们的肌肉,而肌肉肯定取决于他们做了多少运动,以及锻炼的规律。当然,“运动前”和“运动后”的一些变量是必须的。简而言之,计算他们所做的练习的有效性。
例如:
通常,当运动x做40次时,一个人的肌肉可以增加5分。
A先生做了30次锻炼,得到了4块肌肉。因此A先生的得分= (4 / 30 )/ (5 / 40)
总分是A. total先生做的另一个练习的总和=分数(X)+分数(Y)+分数(Z)
这是足够公平的,因为实际结果直接与预期结果进行比较。这也可以阻止一个更强壮的人进行简单的锻炼。因为,你知道,阿诺德·施瓦辛格不能用1公斤的哑铃增加他的肌肉。
当然,单位(肌肉)可能会因运动而不同。
https://stackoverflow.com/questions/3660717
复制相似问题