一个组合和约束解决问题。我可以使用什么算法?

问题描述:

这个问题觉得它应该有一个名字。希望有人能够认出它。一个组合和约束解决问题。我可以使用什么算法?

有一个32个会员俱乐部。每周会员共同共进晚餐,将他们分成8桌,每桌4人。每个星期他们安排自己,以便他们总是和不同的人坐在一起。

是否有可能让每个人都与其他人坐下一次?

我已经试过编程贪婪的方法,但它并没有对这些数字的工作(它没有用的4各4台16会员俱乐部的工作,而不是36名成员与6 6个表人们)

虽然这听起来像是一个家庭作业问题,但这实际上是来自我的朋友的妈妈,谁试图组织这些晚餐。

+0

'来自我朋友的妈妈',太棒了!这真是一个数学问题,因此更适合math.stackexchange.com,但您可能会在这里得到答案。 – 2011-01-21 06:05:40

+0

[创建不再有一个相交元素的组合]的可能重复(http://*.com/questions/2955318/creating-combinations-that-have-no-more-one-intersecting-element) – 2011-01-21 07:18:47

+0

http:///en.wikipedia.org/wiki/Block_design是数学问题的一个起点。 – mcdowella 2011-01-21 19:26:47

组里有32人,所以你需要和其他31人共进晚餐。

因此,不可以和任何其他人共进晚餐一次。

31是一个素数。你必须一次与3人共进晚餐,因为桌上有4人。无法与31人一起共进晚餐,3人一次不会重复或跳过任何人。 (31不能被3整除)。

QED

,然后去回溯这会给你所有可能的组合。