我正在尝试开发一个简单的游戏,一组用户可以来玩这个游戏。根据用户的表现,他们获得正分或负分。
我想考虑两个参数来考虑用户的体重
(他参加的比赛数量和他在这些比赛中的表现)他的即时技能组合
。将这两个组合在一起用于每个用户并与其他用户的分数进行比较可能会给出他在当前比赛中的分数。
然后将分数和之前的评分结合起来,我们可能会得到用户的新评分。
我不想重新发明轮子。我尝试并想出了这个,但这看起来很天真,我不确定在现实世界场景中的表现如何。
Pos[i] and Neg[i] are the positive and negative score of the users in a match.
Step1: Calculate the average score of n people `for i in range(1, N): sum = sum + Pos[i] Average = sum/N` do the same for negative score.
Step2: Calculate the Standard Deviation (SD)
Step3: Calculate the weight of the user as follows say the user has played M matches, his weight W will be Mxabs((sum(POS[i])/N1 - (sum(NEG[i])/N2))
(where N1 is the number of times he has scored positive scores and N2 the number of times he scored negative result)
Step4: Current Score = (POSi - SD)xW
Step5: His New Rating = Old Rating + Current Score
请推荐一些标准的东西。
最佳答案
你应该看看如何chess ratings被计算。有一些变体可供选择,但我认为它应该适合您的情况。
关于algorithm - 用户排名模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006352/