gpt4 book ai didi

algorithm - Elo 的起始值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:43 26 4
gpt4 key购买 nike

最近制作了一个锦标赛支架,玩家可以在其中注册并参与获得获胜席位的机会。如您所见,这是它的图片:

enter image description here

锦标赛分组结束后,我计划将这些奖金转化为排名。因此,结果是“Achilles”排名第一,因为他在锦标赛中表现最好,然后排名第二的是“rjg 2”,依此类推。之所以将锦标赛分组转换为排名,是因为现在我想给玩家创造与其他玩家比赛的机会。这很重要,因为即使锦标赛分组有效,它也不包含玩家之间每场可能比赛的结果。没关系,锦标赛分组只是为了让其他人基本了解谁是最好的/最差的。不过,一旦赛事组别转换为排名,新用户也有机会报名,让更多玩家可以相互较量。现在,在开始排名部分之前,我想尝试在比赛中使用 Elo 排名。我的问题是,我需要在锦标赛中为这些玩家分配积分。这很棘手,因为如果我不小心,我的 K 值可能会扰乱事物的顺序。这是我的表格:

#1 Achilles
#2 rjg 2
#3 gg
#4 beta 1
#5 dfgsdf
#6 test2
#7 rjgtest
#8 rocket

我需要为每个玩家分配“分数”以反射(reflect)排名。这意味着 #1 Achilles 将获得最多的分数,而 #2 将是 rjg2 等等......但是,根据 Elo 的工作方式,我不知道要分配多少分数。如果范围太大,玩家将永远没有机会在排名中上升,但如果范围太小,排名将不断变化。

例如,如果我这样布置我的 table :

1  1000
2 900
3 800
4 700
5 600
6 500
7 400
8 300
9 200
10 100

#1 将获得 1,000 分,#2 将获得 900 分,依此类推。如果排名第 10 胜过排名第 1,那显然是非常不可能的。因此,当我使用 elo 进行数学计算时,会发生以下情况:

因此,如果我以这种方式进行(基于解释的方式 here ),假设我的排名 #10 面对排名 #1。根据上面的网站,我的公式是:

R' = R + K * (S - E)

#10 的评分只有 100 分,而#1 有 1,000 分。所以在做了数学计算后,排名第 10 的人击败第 1 名的期望值是:

1 / [ 1 + 10 ^ ( [1000 - 100] / 400) ]
= 0.0055%

0.55%很低也有道理,十强几乎没有机会打得过一强。然而,如果他要打败他,结果如下:

 100 + 32 * (1 - 0.0055)
= 131.824

在击败排名第一的玩家时,他只会获得 31 分。这显然行不通,但我可以减小点的范围或增加我的 K 因子。

有没有人对这项工作有任何建议?或者也许建议我以不同的方式对我的球员进行排名?

最佳答案

恐怕我不太了解 Elo 评级,但我知道选择合适的 K 值可能会有问题。

我知道 K 值通常会根据玩家玩了多少游戏而改变。玩过很多游戏的玩家被赋予较低的 K 值,因此他们的评分不会发生太大变化(因为我们对他们的评分更加确定,我们希望它保持相当稳定)。同样,一个没有玩过很多游戏的玩家会获得更高的 K 值(我们不太确定他们的评分,所以我们不介意它移动得更多)。

另一种方法是使用评级系统,该系统试图结合我们对玩家评级不确定性的衡量标准。例如,Glicko 评级系统或微软的 TrueSkill 算法。这些系统会自行估算玩家技能水平的可变性(或不确定性),因此您无需设置 K 值。

http://trueskill.org 上有一个非常好的 TrueSkill Python 实现。 ,由 Heungsub Lee 编写,其中包含大量有关如何使用该库的示例。玩家的评分包括平均值(代表他们的估计技能)和标准差(代表我们对他们技能的不确定性)。

Microsoft 使用 TrueSkill 在许多 Xbox 游戏中进行匹配,因此应该非常适合您匹配具有相似能力的玩家的意图。

关于algorithm - Elo 的起始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27122033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com