1

假设您有一组样本大小为 10,000 的人。集合中的每个人都有一个以胜率形式表示的评分分数:0.00 < x < 1.00

目前我的系统随机挑选两个人并将他们匹配在一起。我想通过将胜率高的人与胜率高的人配对来改善配对。

你玩过魔兽世界竞技场吗?通常,如果您在 2000 年组中,您将与在 2000 年组中的团队匹配。如果您在 1500 位,您将与排名相似的人匹配。

实施这种配对系统最简单的方法是什么?虽然实现并不重要,但即使是伪代码也会有所帮助,但如果您能使用 JavaScript、Backbone 和 Underscore 作为工具带引导我朝着正确的方向前进,我将不胜感激。

4

1 回答 1

2

将每个人放在平衡的二叉树中(如果您经常添加和删除人员)或排序数组(如果数据集或多或少是静态的),使用他们的获胜百分比作为排序键。要匹配某人,请在树或数组中找到他们,然后使用随机数生成器将他们与排名在 +/- 10 内的某人进行匹配(例如,如果您使用数组并且该人在第 i 个索引中,然后将它们与 i + rand(10) + 1 索引处的人匹配)。

我假设某人的获胜百分比只会以很小的增量变化,这意味着更新树或数组通常是一个恒定的时间操作,因为您只是交换相邻的元素。

于 2013-06-17T03:16:57.783 回答