【发布时间】:2013-03-15 12:23:04
【问题描述】:
我知道有几个问题涉及这个主题(例如here),但没有一个(至少从我发现的)能满足我的需要。
假设我有一个包含 3 个元素的数组 [1, 2, 3]。我需要找到所有可能的唯一组合(因此不包括排列,例如here),包括重复元素的组合。所以结果应该是:
[1]
[2]
[3]
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3]
[1, 1, 1]
[1, 1, 2]
[1, 1, 3]
[1, 2, 2]
[1, 2, 3]
[1, 3, 3]
[2, 2, 2]
[2, 2, 3]
[2, 3, 3]
[3, 3, 3]
排除与[1, 2, 3] 相同的子集,如[3, 2, 1] 或[2, 1, 3]。
我怎样才能做到这一点?
【问题讨论】:
-
@JohnConde 这不是重复的,因为它不包括
AA, BB, CC, AAA, BBB, CCC案例。 -
@Alex 是只有 3 个元素还是会有更多元素?
-
[1, 1, 1, 1, 1, 1, 1, 1, 1]是“子集”吗? -
属于
[1, 2, 3]?看不出来怎么可能。但它是[1, 2, 3, 4, 5, 6, 7, 8, 9]的子集。 -
我的数学很模糊 - 你是要一个 powerset 还是这有点不同?
标签: php arrays combinations