匹配评分相似的人?

时间:2013-06-17 03:06:13

标签: javascript algorithm matching rating-system

假设您有一组样本量为10,000的人。该集合中的每个人都具有获胜百分比形式的评级分数: 0.00< x< 1.00

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

你曾经玩过魔兽世界的竞技场吗?通常情况下,如果您在2000年的支架中,您将与2000支架的球队相匹配。如果您在1500支架中,则与具有相似排名的人匹配。

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

1 个答案:

答案 0 :(得分:2)

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

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

相关问题