【发布时间】:2013-10-18 10:30:37
【问题描述】:
我有一个包含 500 个浮点数的列表。
我想从列表中挑选出 11 个数字,它们加起来总和为 N,并且 N 在 X 范围内
这基本上是一个梦幻足球游戏,我们在人物阵容中自动选择 11 名球员。
总成本应该在一个范围内,而不是随机的。
一种解决方案可能是连续随机选择 11 名玩家,直到我得到一个适合该范围的总数,但我想知道是否有更优雅的方法?
【问题讨论】:
-
动态规划 :) 它是背包问题的修改版本。
-
也是子集和问题的修改版本。这并不奇怪,因为两者都是 NP 完全的。
-
您只需要一个选择吗?它必须给所有玩家一个公平的机会?
-
感谢 thefourtheye,甚至不知道该用谷歌搜索什么!
-
你不必随机挑选球员。选择随机玩家会导致碰撞,从而减慢寻找解决方案的速度。取而代之的是,您可以系统地循环遍历不同的组合,希望尽快找到解决方案。