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

时间:2011-01-21 05:54:06

标签: algorithm math constraints

这个问题感觉它应该有一个名字。希望有人能认出来。

  

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

     

是否可以让每个人与其他每个人坐在一起一次?

我尝试编程贪婪的方法,但它不适用于这些数字(它确实适用于16个成员俱乐部,每个4个表4个,但不是36个成员,6个表6个人)

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

2 个答案:

答案 0 :(得分:4)

小组中有32人,所以你需要与其他31人共进晚餐。

因此,没有你不能与其他人共进晚餐。

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

QED

答案 1 :(得分:0)

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