【发布时间】:2012-10-31 09:39:16
【问题描述】:
我需要一个执行以下操作的算法:
在一个 NBA 梦幻联赛中,给定:
- 每个玩家的平均总分
- 每个玩家的价格
- 工资帽
选择最佳的 9 人阵容。
举个简单的例子,假设联盟中只有四名球员,你有 10,000 美元的工资帽,并且你想要最佳(即最高分)三人阵容。以下是平均积分和价格:
勒布朗詹姆斯:30分/场; 5,000 美元
科比·布莱恩特:25分/场; $3,500
德隆-威廉姆斯:20分/场; 2,500 美元
Shelvin Mack:15分/场; 2,000 美元
最佳阵容是科比、威廉姆斯和麦克,这将花费 8,000 美元并获得 60 分。
还有一个进一步的限制:程序必须为每个位置选择一定数量的球员(例如,两名控球后卫、两名得分后卫、两名小前锋、两名大前锋和一名中锋)。这就是让程序设计变得困难的原因。
【问题讨论】:
-
没有最后一个约束,问题可以很容易地简化为knapsack problem,它有一个伪多项式时间解。
-
詹姆斯、威廉姆斯、麦克肯定更好 - 9500 美元,65 分?
-
每个玩家只能打一个位置,对吧?