java最接近的组合算法

时间:2014-06-03 13:28:15

标签: java

我对java中的算法有一个快速的问题。 我确定它已在某个地方完成,但我无法想到它。

说我有一组数字,例如一个例子来解释足球运动员

Player 1: Speed 120 / Skill 12 / footwork 9
Player 2: Speed 160 / Skill 16 / footwork 16
Player 3: ...
Player 4: ...
and so on.

我将有一个像#34的结束号码;我希望技能= 1320,速度= 60,步法= 80 并输出算法告诉我 "玩家1,玩家4,玩家6和玩家12将=技能,1320(最接近它可以)速度61,步法80。

任何人都可以指出这个算法的正确方向,或者是一个有我可以研究名称的类似方法。

谢谢

3 个答案:

答案 0 :(得分:0)

调整硬币更改算法以使用每个属性中的可用值替换所有可能的硬币面额可能有效。

http://www.algorithmist.com/index.php/Coin_Change

你必须为"足够接近"添加一点摆动空间。但这应该是你需要的基本算法。

答案 1 :(得分:0)

一种简单的方法是检查球员技能/步法/等等。

例如,你搜索一个玩家(速度= 110,技能= 15,步法= 12)。

所以你的程序将搜索速度= 110(+/- 10%)技能= 15(+/- 10%),步法= 12(+/- 10%)的玩家。

也许不是最好的解决方案,但很容易实现^^

答案 2 :(得分:0)

另见:http://www.csd.uoc.gr/~hy562/lectures14/week2a_ranking.pdf 天际线......并且通常在数据库中排名。