Я пытаюсь разработать простую игру, в которой может появиться группа пользователей и играть в нее. Основываясь на производительности пользователя, они получают положительный результат или отрицательный результат.Оценка пользователя
Я хочу, чтобы два параметра принимались во внимание: weight
пользователя (количество матчей, которые он сыграл, и его выступление в этих матчах) instantaneous skill sets
. Эти два, объединенные вместе для каждого пользователя и сравниваемые с другими оценками пользователя, могут дать его оценку в текущем матче.
Затем, комбинируя оценку и предыдущий рейтинг, мы можем принести пользователям новую оценку.
Я не хочу изобретать велосипед. Я попытался и придумал это, но это выглядит довольно наивно, и я не уверен, как производительность будет в реальном мире.
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
Пожалуйста, предложите что-то стандарт.
Спасибо!