首页 > 试题广场 >

爸爸去哪儿中的3对父子站成一排,各自父子之间不能相邻,比如石

[单选题]
爸爸去哪儿中的3对父子站成一排,各自父子之间不能相邻,比如石头不能和郭涛挨着,以此类推,共有几种站法?
  • 120
  • 48
  • 240
  • 144
推荐
假设三对父子分别是Aa、Bb、Dd;
第一个位置有6种选择,假设为A;
第二个位置有4种选择(因为不能为a),假设为B;
第三个位置需要分类讨论一下,如果为a,则可以确定后面三位只有两种选择了,如果不为a,第三个位置有两种选择(D和d),假设为D,进而再确定后面三个位置的选择数。
那么结果是:6*4*(2+2*4)=240。

编辑于 2016-04-11 11:20:15 回复(14)
用代码实现的,A与a表示父子,运行结果是240,求验证
#include <vector>
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main(int argv, char** argc)
{
	vector<char> member = { 'A', 'B', 'C', 'a', 'b', 'c' };
	int b = 1;                   //ABCabc本身是满足要求的一个排列,所以计数从1开始
	int flag = 0;
	while (next_permutation(member.begin(), member.end()))
	{
		for (auto i = member.begin(); i != --member.end(); ++i)
		{
			if (((*i) - *(i + 1)) == 32 || ((*i) - *(i + 1)) == -32)
				flag = 1;        //父子站在了一起
		}
		if (flag == 1)
			flag = 0;
		else
			++b;                 //满足要求,计数加1
	}
	cout << b << endl;
}

发表于 2015-09-06 09:54:53 回复(3)
假设三对父子分别为A1,B2,C3.
三对父子全排列数为:6!=720
至少一对父子相邻的全排数为:5!*2*3=720
至少两对父子相邻的全排数为:4!*2*2*3=288
三对父子相邻的全排数为:3!*2*2*2=48

各自父子不相邻全排数为:
6!- 5!*2*3 + 4!2*2*3 - 3!*2*2*2=240
发表于 2015-09-07 09:54:40 回复(1)
240,
发表于 2015-09-06 10:15:40 回复(3)
假设三对父子分别是Aa,Bb,Cc;
则可将位置固定,对每个位置上所能站的人进行选择;
第一个位置S1的选择是有6种;
第二个位置S2的选择是只有4种,为了符合父子不能相邻的条件限制,此时情况是三对父子中有两对的人都排好了一个;

第三个位置S3有两大类情况的出现:
第一类:第三个位置上的是属于第三对父子中的一个(这对父子此前一个都没有排),这时第三个位置的选择有2种,
此后三个位置上剩余的三个人都不属于同一对父子的,但必须排除S4是和S3同一对父子的情况,一共有A(3,3)减去
S4和S3同一对父子的情况A(2,2),共4种情况;

第二类:第三个位置上的是属于前面和S1同一对父子的情况,这时第三个位置的选择有1种,
此后三个位置剩余的三个人属于第三对父子和S2所在父子中剩余的一个,根据父子不能相邻的条件限制,S2所在父子中剩余的一个
一定夹在第三对父子之间。出现的情况就是第三对父子在456位置中的4、6位置上,5位置上是S2所在父子中剩余的一个,共A(2,2)
即2种情况;

一共是6X4X(2X4+1X2)= 240 种
发表于 2015-09-06 15:35:32 回复(0)
大家帮我看看我的思路错在了哪里,我的思路如下:
设三对父子为Aa, Bb, Cc,假设先排父亲,有六种排法,然后对儿子进行插空,插入顺序假设为a,b,c,a有两种插法,a插入之后b有3种插法,接下来c有四种插法,故一共有6*2*3*4=144种
求指点,我的解法忽略了什么关键点啊
发表于 2017-05-09 00:13:50 回复(1)
父亲先排 6种 孩子去插空挡  6x2x3x4=144<? (有遗漏)  答案>144 所以选240 
发表于 2017-03-18 13:38:44 回复(0)
插空法:
选取两队父子 C3 =3
两队父子不能父子相邻 C2 1*2=4
另外一对父子插空 C5 1*C4 1=20
故有:3*4*20=240
发表于 2016-03-25 15:08:28 回复(0)
容斥原理,6个人全排列-一对父子相邻+两对父子相邻-三队父子相邻 
A(6,6)-C(3,1)*A(2,2)*A(5,5) + C(3,2)*A(4,4)*A(2,2)*A(2,2) - A(3,3)*A(2,2)*A(2,2)*A(2,2) = 240
发表于 2015-09-06 14:46:02 回复(27)
最容易理解的办法:
(1)先取出两对父子,3对父子取出2对有3种,
(2)进行排序,保证父子不相邻,就有 2*2=4种排序
(3)剩下一对父子插入上面4个人的5个缝隙种,就有 5*4=20
(4)3*4*20=240


发表于 2015-09-06 11:16:52 回复(19)
第一个位置6种
第二个位置4种(除了亲人,剩4人)
第三个位置3种
第二个位置2种
第二个位置1种

总共6*4*3*2*1=144种


发表于 2015-09-06 10:42:07 回复(1)
排列组合中的不相邻问题,先把一方排好序,再去排另一方。
爸爸们先排好A(3,3)=6种,然后儿子找空位插:
第一个儿子有两个空位插(4-2):三个爸爸四个位置,一个爸爸左右两边位置不能插,所以是4-2.
同理,第二个儿子有三个位置插(5-2),第三个儿子有四个位置插(6-2).
那么结果就是:6*2*3*4=144种。
发表于 2015-09-06 10:24:40 回复(17)
给大家另提供一种思路,集合算法:
A:表示Aa相邻的所有情况
B:表示Bb相邻的所有情况
C:表示Cc相邻的所有情况
AUB : 表示集合A和B的并
A^B:表示集合A和B的交
那么题目的解为:
X = A(6,6) - A- B - C +AUB + AUC + BUC -A^B^C
在计算AUB的时候,我们把Aa捆绑,Bb捆绑看成一个元素
所以就有上式子等于X = 720 -  A(5,5)*2*3 + A(4,4)*4*3 - A(3,3)*2*2*2 = 240
发表于 2015-09-06 17:29:39 回复(3)
画了一副图来表达这个问题:
1.大圆表示所有情况,共6!种;
2.三个小圆分别表示第1,2,3对父子相邻的情况,每个小圆包含2*5!中情况,此处解释一下,比如说第一对父子相邻,那么将该父子
看作整体,与剩下4人一起全排列,有5!中情况,该父子的位置可以互换,故再乘以2;
经过上述定义,则两个小圆相交的区域表示有两对父子相邻的情况,三个校园相交的区域表示有三队父子相邻的情况;
再回到该题目,题目要求的就是大圆中未被小圆覆盖的区域,根据集合运算法则,得到:
6!-(2*5!*3-4*4!*3+8*3!)=240 

发表于 2016-08-11 21:31:26 回复(5)
假设第一个位置站的是一号爸爸,那么第二个位置可以站除1号儿子外的其他人,也就是4种情况,同理第三个位置有三种情况。总计4*3*2=24种情况。第一个位置分别更换其他爸爸和孩子一共6种情况,24*6=144
发表于 2015-09-06 09:36:58 回复(2)
假设三对父子分别是Aa、Bb、Dd;
完成这个排序分三步:
1.先排一对,假设排Aa,则有
2.再排一对,假设排Bb,因为要不相邻,所以有三个位置可选
3.最后排一对,Dd,同样需要不相邻,所以有五个位置可选
最后结果:=240
发表于 2018-09-10 16:52:24 回复(0)
我觉得应该是选C,假设三对父子分别是Aa,Bb,Cc
第一个位置有6中选择假设选择A
那么第二个位置除了a意外有4种选择,假设选择B
那么第三个位置分情况讨论:
情况1:在选择a的情况下,后面留下了Cbc,b只能放在中间,所以有两种选择
情况2:如果选择的是c或者C的情况下,是有2*(A(3,3)-A(2,2))=8
所以总共有6*4*(2+8)=240种选择
发表于 2015-09-06 10:58:44 回复(2)
全部情况:6!=720
3对父子全相邻,如AaBbCc的情况共:3! * 2 (此对父子自身的排列) * 2 * 2 = 48

2对父子相邻,如 __Aa__Bb__的情况共:3 (//3对父子选出其中2对来相邻)  * 2(//两对相邻状态父子的排列) * 2(//第一对相邻状态父子自身排列) * 2(//第二对相邻状态父子自身排列)* 3 (不相邻对父子选3个空中的 2个扔进去) * 2  (此对不相邻父子自身排列) = 3 * 2 * 2 * 2 * 3 * 2 = 9 * 16 = 144

1对父子相邻,如 _B_C_b_c_的情况(BC_cb这种情况后面讨论,这种情况那对相邻父子只能插在中间这个空,别无其他选择)共:3 (//3对父子选出其中1对来相邻) * 2(//两对不相邻状态父子的排列) * 2(//第一对不相邻父子自身排列) * 2(//第二对不相邻父子自身排列) * 5 (//将那对相邻的父子扔进5个空中的某一个共5种情况) * 2 (//这对相邻父子自身的排序) = 3 * 2 * 2 * 2 * 5 * 2= 3 * 16 * 5 = 240

1对父子相邻的特殊情况如BC_cb,共:3 (//3对父子选出其中1对来相邻) * 2(//两对不相邻状态父子的排列) * 2(//在外侧那对父子自身的排列) * 2(//在内侧那对父子自身的排列) * 1(//那对相邻父子只能插在中间这唯一可选空) * 2(//那对相邻父子自身的排列) = 3 * 2 * 2 * 2 * 1 * 2 = 3 * 16 =48

故所求为:720 - 48 - 144 - 240 - 48 = 240
发表于 2015-09-07 17:47:11 回复(1)
1.从三对父子中挑出两对C(2,3);
2.挑出的两对只有四种排序,甲 1,乙 2(父子关系),可以试着写写
3.四个人5个空位,C(2,5);
C(2,3)*4*C(2,5)=240
发表于 2015-10-09 22:13:45 回复(2)
这是排队问题,6x4+(8+2)=240
编辑于 2018-08-25 15:53:09 回复(0)
基本的排列问题
父子AA站队:有A(2,2) ==  2 中站法。 
在AA站队好之后,父子BB站队,有A(3,2) == 6种站法。
现在,父子CC来站队,有 A(5,2) == 20种站法。
共2 * 6 * 20 = 240
式中,A(X, Y)表示在X个空位中,选取Y个空位来站队,因为考虑顺序,所以是A,不是C 
发表于 2016-11-16 10:46:56 回复(0)