请教个排列组合问题

二楼の五号 2013-04-07 12:33:12
已知1到10十个数字中随机取2个数字使其相邻的概率(1与10也算相邻)的概率为 C(1,10)*2。
问题:随机选取3个数字、在这三个数字中任意两个数相邻的概率是多少?请教计算公式,不需要代码
...全文
165 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
二楼の五号 2013-04-07
  • 打赏
  • 举报
回复
应该能确定任选择2个数字相邻的概率:P = 10*2/C(10,2)
慧眼识狗熊 2013-04-07
  • 打赏
  • 举报
回复
任选2个数字相邻的概率为 10/C(2,10) 任选3个相邻为 C(1,10)*8/C(3,10)
二楼の五号 2013-04-07
  • 打赏
  • 举报
回复
上面的似乎错了,任选2个数字相邻的概率应该为:C(9,2) ,头脑混乱了
二楼の五号 2013-04-07
  • 打赏
  • 举报
回复
计算公式把数字10改为N
二楼の五号 2013-04-07
  • 打赏
  • 举报
回复
引用 10 楼 nice_cxf 的回复:
全相邻举个例子把:3开头的一共有312,321,324,342,345,354,一共6种,所以一共60 任意两个算错了,假定3开头,第二个是2的话有6种,第二个是4的话同理6种,第三个是2或4也是6种,剩余从5-6到10,1,一共6×2,一共是360种,剩余300种为不相邻的
你的结果应该是对的,算排列的话 全相邻60种,组合就是10种 。 劳烦能不能写一个公式解释下过程,感激
yinhe888675 2013-04-07
  • 打赏
  • 举报
回复
没看懂啊,晕
nice_cxf 2013-04-07
  • 打赏
  • 举报
回复
全相邻举个例子把:3开头的一共有312,321,324,342,345,354,一共6种,所以一共60 任意两个算错了,假定3开头,第二个是2的话有6种,第二个是4的话同理6种,第三个是2或4也是6种,剩余从5-6到10,1,一共6×2,一共是360种,剩余300种为不相邻的
二楼の五号 2013-04-07
  • 打赏
  • 举报
回复
上一帖些错了:P = A(10,1)*A(2,1)/A(2,2) * A(7,1)/C(10,3) 这个算出的结果也不太靠谱
二楼の五号 2013-04-07
  • 打赏
  • 举报
回复
回五楼: 感谢你详细的回复,但是情况显得有些复杂了,这样处理相交的数字很难计算 有条件“1与10“是算为相邻的,如果按照你的思路稍加改变可以考虑为如下4种情况: 加入选出来的三个数字分别为ABC,函数A()代表排列,C()代表组合,P为概率 情况1:AB相邻 情况2:AC相邻 情况3:BC相邻 每种情况都可以用公式:P = A(10,1)*A(2,1)/A(2,2) * A(7,1) 来表示,那概率似乎乘以3就可以了? 但是这3种情况好像也有重复的。怎么剔除呢?
二楼の五号 2013-04-07
  • 打赏
  • 举报
回复
引用 4 楼 nice_cxf 的回复:
C应该是组合,P才是排列 三个全相邻的排列:10*P(3,3) 三个任意两个相邻:10*(2*6+2*6+p(7,2)*2)
1、按照你的算法: 三个全相邻数量为60。这种情况下我认为概率P=A(10,1)*A(2,1)*A(2,1)/A(3,3)/C(10,3) A()为排列,C()为组合 ,但是这个算法40/6不能整除,感觉也不太对 2、三个中任意两个相邻公式没怎么看懂,求过程。
lyx6988 2013-04-07
  • 打赏
  • 举报
回复
上面的讨论基于3个选出来的数字不允许相同的条件
lyx6988 2013-04-07
  • 打赏
  • 举报
回复
选两个相邻的概率是c(1,10)。 选出的两个数必定是x,x+1,而x的可能为c(1,10)=10。 选出3个数:x,y,z,它们依次从小到大排列,即x<y<z。 那么有两个相邻的可能情况为: 1) x,x+1,z ; 其中 1<=x<=8, 由于 x+1<z<=10,因此z有10-x-1种选择 2) x,y,y+1 ; 其中 2<=y<=9, 由于 1<=x<y,因此x有y-1种选择, 3) 1,y,10 ; 第1个数和第3个数相邻只可能是这种情况,y有8种选择。 前两种情况共同包含了情况: 4) x,x+1,x+2 那么 case1 的可能情况有 对 (9-x) 进行求和,x范围是1到8,值为36, 而 case2 的可能情况有 对 (y-1) 进行求和,y范围从2到9,值也是36, case3 的可能情况有 8, case1与case2的交集case4的可能情况有 8, case1与case3的交集是(x=1,y=2,z=10),可能情况有 1, case2与case3的交集是(x=1,y=9,z=10),可能情况有 1, case1与case2与case3都交的交集为空,可能情况有 0 个。 因此总的概率 = case1 + case2 + case3 - case1交case2 - case1交case3 - case2交case3 + case1交case2交case3 = 36 + 36 + 8 - 8 - 1 - 1 + 0 = 70 。 结果是否正确编程即可验证,从10个中选出3个的总数是 c(3,10) = 120。 如果谁的结果超出了总数,那肯定是错的。
nice_cxf 2013-04-07
  • 打赏
  • 举报
回复
C应该是组合,P才是排列 三个全相邻的排列:10*P(3,3) 三个任意两个相邻:10*(2*6+2*6+p(7,2)*2)

64,645

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧