关于java中的算法,我有一个简短的问题。我肯定有人在什么地方做过,但我就是想不起来。
例如,我有一组数字,例如,足球运动员
Player 1: Speed 120 / Skill 12 / footwork 9
Player 2: Speed 160 / Skill 16 / footwork 16
Player 3: ...
Player 4: ...
and so on.我将有一个类似于“我希望技能= 1320,速度= 60,步法= 80,算法的输出告诉我”的结束数字,玩家1,玩家4,玩家6和玩家12将=技能,1320 (它能达到的最接近)速度61,步法80。
谁能给我指出这个算法的正确方向,或者有一个类似的算法,我可以研究它的名字。
谢谢
发布于 2014-06-03 21:30:25
采用硬币变化算法来用每个属性中的可用值替换所有可能的硬币面额是可行的。
http://www.algorithmist.com/index.php/Coin_Change
您将不得不为“足够接近”添加一点回旋余地,但这应该会让您获得所需的基本算法。
发布于 2014-06-03 21:44:30
一个简单的方法是检查球员的技能/步法/等等。在一定范围内。
例如,你用(速度= 110,技能=15,步法= 12)搜索一个球员。
所以你的程序将搜索速度= 110(+/-10%),技能=15(+/-10%),步法= 12(+/-10%)的玩家。
也许不是最好的解决方案,但很容易实现^^
发布于 2014-06-04 02:08:44
另请参阅此处:http://www.csd.uoc.gr/~hy562/lectures14/week2a_ranking.pdf skyline...and在数据库中的一般排名。
https://stackoverflow.com/questions/24016468
复制相似问题