我很难想出一种算法来生成一组集合中所有可能的集合的列表。我的意思是,给定一个集合SI希望知道包含集合S集合的所有可能的集合。我可能没有很好地描述它,因此我将举一个例子,希望能阐明这一点。
如果S = {1, 2, 3}
我在找:
{{1,2,3}}
{{1,2},{3}}
{{1,3},{2}}
{{2,3},{1}}
{{1},{2},{3}}
虽然可以手动生成这些代码,但很麻烦,但我很难提出可以放入代码中的算法。
您可以递归进行,我向您展示了如何从{1,2}中找到{1,2,3}的答案。
对于具有n个元素的集合,通过解决没有第n个元素的问题来解决:
{{1 , 2}}
{{1}, {2}}
然后考虑为n-1个元素创建的每个集合。然后将第n个元素添加到此集合的每个元素中,如下所示:
从{{1 , 2}}
我们有:
{{1 , 2} , {3}}
{{1 , 2 , 3}}
从{{1}, {2}}
我们有:
{{1, 3}, {2}}
{{1} ,{2, 3}}
{{1}, {2}, {3}}
如您所见,我们为3个元素解决了问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句