同学聚会
理工大学90级外语系12个男生和8个女生携自己的老婆或老公参加大学同学聚会,晚餐时每桌10人,分别落座某饭店包间的A.B.C.D桌.为防止特殊情况的发生,大家一致决定该班的20位同学落座时遵循以下原则: 如果自己的配偶不与自己相邻,则不得与本班的异性相邻.客人则不受此限制.问题: 有多少种落座方法? 这个有点无从下手,谁能给个提示? 所以嘛,同学聚会千万不能带家属! 穷举吧,规模不大. 穷举吧,规模不大.
mathe 发表于 2010-1-19 08:39 http://bbs.emath.ac.cn/images/common/back.gif
递归没有合适的出口,主要是筛选前的基础排列:40!/10^4,44位数 本帖最后由 medie2005 于 2010-1-19 20:39 编辑
5# northwolves
应该是:XXXXX 5# northwolves
应该是:XXXXX
medie2005 发表于 2010-1-19 20:10 http://bbs.emath.ac.cn/images/common/back.gif
5位数?不会吧? 可以不区分4张桌子、12个男生、8个女生,但配偶要区分,所以基础排列可缩减为
40!/12!/8!/4!=1.76e+33
随机落座4亿次,有690682次符合规则。
所以概率约为0.001726705。
如果按照40!的全排列计算,共有大约
40!*0.001726705=1.41e+45
种落座方案。 看来规模有点大,可以试着用动态规划解决,问题规模同下面不定方程的非负整数解数目相关
$2*x_1+x_2+x_3+2*y_1+y_2+y_3=k$
其中要求$x_1+x_2<=12,x_1+x_3<=12,y_1+y_2<=8,y_1+y_3<=8$
而k=11和k=22可以分别用来估计问题的空间和时间复杂度.
这个方法Fans应该非常熟悉. 首先考虑4个桌子的合并问题,可以从一个固定的位置拼接,然后再考虑所产生的问题。
其次,对一个桌子n男生,m女生,可以这样考虑递归步:由N(n,m)插入新男生,求N(n+1,m)
上面只为楼主提供点思路,我也没仔细想,不一定可行