Python 最小子集数
我试图找到一个算法来解决这个问题,但我正在努力 问题:有N个子集,每个子集的成本为1。(例:123、145、23、12) 我们正在尝试选择子集的最小数量,以便拥有子集的所有数字 例1:如果输入12 24 35 12345 13 14 15 23 25,答案是1,因为我们将只选择“12345” 约束条件:子集的位数可以从1到9(不包括零),子集的数量始终为9Python 最小子集数,python,algorithm,Python,Algorithm,我试图找到一个算法来解决这个问题,但我正在努力 问题:有N个子集,每个子集的成本为1。(例:123、145、23、12) 我们正在尝试选择子集的最小数量,以便拥有子集的所有数字 例1:如果输入12 24 35 12345 13 14 15 23 25,答案是1,因为我们将只选择“12345” 约束条件:子集的位数可以从1到9(不包括零),子集的数量始终为9 这就是我们所知道的。您需要做的第一件事是找出子集中存在哪些数字。使用pythonset对象很容易做到这一点。将每个子集的每个数字添加到集合。
这就是我们所知道的。您需要做的第一件事是找出子集中存在哪些数字。使用python
set
对象很容易做到这一点。将每个子集的每个数字添加到集合
。现在你有了需要覆盖的场景。然后尝试所有可能的子集组合。总有9个子集,因此只有2^9=512个可能的组合可供尝试。itertools
软件包中有一个combinations
方法可以帮助您解决这个问题。这是否回答了您的问题?