【发布时间】:2021-09-16 15:11:21
【问题描述】:
我目前正在尝试解决以下问题。
我必须找到一个集合的所有对(具有偶数个元素),这样:
- 没有两对有共同的元素
- 所有元素都成对
举个例子:
pairingsSet({0, 1, 2, 3})
should return something like
{
{{0, 1}, {2, 3}},
{{0, 2}, {1, 3}},
{{0, 3}, {1, 2}},
}
还有一个更详细的例子:
pairingsSet({0, 1, 2, 3, 4, 5})
should return something like
{
{{0, 1}, {2, 3}, {4, 5}},
{{0, 1}, {2, 4}, {3, 5}},
{{0, 1}, {2, 5}, {3, 4}},
{{0, 2}, {1, 3}, {4, 5}},
{{0, 2}, {1, 4}, {3, 5}},
...
{{0, 5}, {1, 3}, {2, 4}},
{{0, 5}, {1, 4}, {2, 3}},
}
我知道解决这个问题的最简单方法是使用递归,但我不知道该怎么做。
我订购了上面的套装,因为它帮助我想出了一个解决方案,但顺序并不重要。我仍然不能完全确定解决方案。我可能很快就会找到答案,我提出这个问题以防其他人遇到类似问题。如果有人想出一个替代答案,我很乐意看到它!
(我目前正在研究Go 的解决方案,尽管非常欢迎使用其他语言的解决方案)
【问题讨论】:
标签: language-agnostic set-theory