我正在寻找一种统计方法来确定玩家是否在在线游戏中作弊。该游戏是一款类似 Quake3 的游戏(自我射击游戏)。
给定每个玩家的正点数和负点数(得分),并给定 n 个玩家(n<=64)。
得分是这样汇总的(从反作弊的角度来看是正/负):
正 = 玩家自己死亡的
次数 负 = 对方球队被杀死的玩家的数量
其他可用值:
t = 完成该分数的时间
c = 当前玩家人数
m = 玩家杀死同一队中某人的次数(teamkiller,如果在 15 分钟内高于 1 或 2,则为负数)
每个玩家都可以相互独立作弊。
我使用了每个玩家的标准偏差(值 v =(负+1)/(正+1),将超过 3 倍的标准偏差指定为绝对确定(100%)的作弊 - 尽管我的经验是超过在大多数情况下,单独使用 stddev 就足够了),这对单个玩家非常有效,但一旦多个玩家同时作弊,它就会惨遭失败。此外,将 3 倍 stddev 定义为 100% 的做法允许 > 100% 的概率。不幸的是,在未经过滤的游戏中作弊的玩家比例大约为 70% 到 80% 甚至更高,如果考虑到更微妙的作弊的话。
要考虑的另一件事是,如果有一群人作弊,而一个人没有作弊,则分布不再是正态分布,而是驼峰式分布。这个问题有什么有用的算法或公式吗?