Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 最小子集数_Python_Algorithm - Fatal编程技术网

Python 最小子集数

Python 最小子集数,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对象很容易做到这一点。将每个子集的每个数字添加到集合。

我试图找到一个算法来解决这个问题,但我正在努力

问题:有N个子集,每个子集的成本为1。(例:123、145、23、12) 我们正在尝试选择子集的最小数量,以便拥有子集的所有数字

例1:如果输入12 24 35 12345 13 14 15 23 25,答案是1,因为我们将只选择“12345”

约束条件:子集的位数可以从1到9(不包括零),子集的数量始终为9


这就是我们所知道的。您需要做的第一件事是找出子集中存在哪些数字。使用python
set
对象很容易做到这一点。将每个子集的每个数字添加到
集合
。现在你有了需要覆盖的场景。然后尝试所有可能的子集组合。总有9个子集,因此只有2^9=512个可能的组合可供尝试。
itertools
软件包中有一个
combinations
方法可以帮助您解决这个问题。这是否回答了您的问题?