我有n个元素需要分割成x个集合,每个集合必须保持k = 4个元素。
我需要找到所有可能的分区,其约束条件是每对元素只共享一次相同的集合。
因此,如果我从[1 2 3 4] [5 6 7 8] [...]开始,所有连续分区都无法保持,例如[1 2 X X]或[X X 1 3]。集合是无序的。
stirling numbers of the second kind接近这个问题。但是,它们只能解决任意大小的问题。
示例:我有32只老鼠,可放入8个笼子,每笼4只。小鼠应该在笼子之间旋转,使它们永远不会遇到另一只老鼠两次。你经常这样做以及配置是什么?
答案 0 :(得分:2)
这是“社交高尔夫球手问题”的一个例子。 Warwick Harvey曾经有一个页面(http://www.cs.st-andrews.ac.uk/~wh/golf/),其中包含一系列针对不同问题规模的解决方案,但似乎已经失败了。在你的情况下,答案是10转,但我不知道实际配置是什么。不过,这是一个9轮的解决方案:http://www.cs.st-andrews.ac.uk/~ianm/CSPLib//prob/prob010/solution
对于一般的n和k,这是一个未解决的问题。
答案 1 :(得分:1)
您的问题陈述(“所有可能的分区”)令人困惑。
让我们修复条款(如果您同意):分区(p
)是 n个元素的特定(和完整)分布strong> x box ,每个 k = 4个元素。 (我使用术语'box'而不是'set'来避免混淆)(顺便说一句,请注意,如果我们接受这个定义,那么你必须重新说明关于“连续分区”的短语,这没有意义)。
然后,让我们调用P ={p1,p2 ...}
所有可能分区的集合。现在,我们对P的一些子集感兴趣(我们可能将它们称为“适当的分区集”)。 PSOF是一组具有给定属性的分区:没有两个分区将同一对元素映射到同一个框。 (我们还可以添加最大属性:在不违反规则的情况下添加另一个分区是不可能的)。
现在,目前尚不清楚您是否愿意:
对我来说似乎不容易。 (对不起,我知道这不是一个as,而是一个澄清,但它不适合评论)