社区
数据结构与算法
帖子详情
一道组合数学问题求救
streetkid
2001-07-18 09:49:15
1,2,3,4,5,6的排列,要求6在5前,4在2前,2在1前,2在3前,请问有多少种不同的排列方法?我的答案是30,但书中给的答案却不是,请给出过程,给分多多。
...全文
190
16
打赏
收藏
一道组合数学问题求救
1,2,3,4,5,6的排列,要求6在5前,4在2前,2在1前,2在3前,请问有多少种不同的排列方法?我的答案是30,但书中给的答案却不是,请给出过程,给分多多。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhou_hua_0911
2001-08-12
打赏
举报
回复
6!*0.5*0.5*0.5*0.5=6*5*4*3*2*1*0.25*0.25=45
因为,共有6!种排法,6在5前面有0.5的概率,同理4在2的前面的概率同为0.5,而2在1的前面的概率亦为0.5,2在3前的概率也为0.5
yug
2001-07-21
打赏
举报
回复
to woodqiang(木头):
1. loca[i]表示数字i的排列位置,所以loca[6]<loca[5]即表示6这个数字在5这个数字前面出现;
2. 同样,loca[i]表示数字i的排列位置,请仔细理解,这里不存在数字重复的问题,mark[7]的作用是避免不同分得数字占据同一位置。
不明白为什么有那么多的答案,我觉得从排列组合和程序两方面都讲得很清楚了,不明白...
只好给出所有排列了:
4,2,1,3,6,5,
4,2,1,6,3,5,
4,2,1,6,5,3,
4,2,3,1,6,5,
4,2,6,1,3,5,
4,2,6,1,5,3,
4,6,2,1,3,5,
6,4,2,1,3,5,
4,6,2,1,5,3,
6,4,2,1,5,3,
4,2,3,6,1,5,
4,2,6,3,1,5,
4,2,6,5,1,3,
4,6,2,3,1,5,
6,4,2,3,1,5,
4,6,2,5,1,3,
6,4,2,5,1,3,
4,6,5,2,1,3,
6,4,5,2,1,3,
6,5,4,2,1,3,
4,2,3,6,5,1,
4,2,6,3,5,1,
4,2,6,5,3,1,
4,6,2,3,5,1,
6,4,2,3,5,1,
4,6,2,5,3,1,
6,4,2,5,3,1,
4,6,5,2,3,1,
6,4,5,2,3,1,
6,5,4,2,3,1,
不会再有问题了吧!
woodqiang
2001-07-21
打赏
举报
回复
上面那位yug(寒鹤) 老兄的程序是否有点问题?
我觉得判断语句里的条件只能保证(第六位上的数字<第五位上的数字)但题目要求是6这个数字在5这个数字前面出现。还在排列好像要求数字不可以重复的,你没有这个控制。
zhangning111
2001-07-21
打赏
举报
回复
我算怎么是 45,有跟我一样的没有。
china_bills
2001-07-21
打赏
举报
回复
肯定是有24种排法,你们都错了
china_bills
2001-07-21
打赏
举报
回复
肯定是有24种排法
china_bills
2001-07-21
打赏
举报
回复
应该是有24种排法,如果我的答案对了,我再告诉你算法
woodqiang
2001-07-21
打赏
举报
回复
to yug(寒鹤)
sorry是我错。我理解错了loca数组的用法。
SoftWare1999
2001-07-21
打赏
举报
回复
不用怀疑了就是30种!
yug(寒鹤) 和lins(寒夜听箫) 都已经解释清楚了,结束吧!
林仪明
2001-07-21
打赏
举报
回复
答案是30种!yug(寒鹤) 先生是对的!
根据题目可以确定1234的排法只有两种4213或4231,以及56的情况。
把56插入4213或4231中是15*2=30种。
yug(寒鹤)先生已经用程序写出了,我就不废话了!
fish_autumn
2001-07-20
打赏
举报
回复
答案30,先按4,2排列,
1,3在2后有两种排法,
4个数6有5个位置可选,
6在最左端,5有5个位置可选,
6在4后,5有四个位置可选,
……
6在四个数最右端,5有一个位置可选
所以结果2×(5+4+3+2+1)=30
monthbird
2001-07-18
打赏
举报
回复
C(6, 2)*C(2, 1)=30
yug
2001-07-18
打赏
举报
回复
答案就是30
先考虑6在5前的排列,显然,为6!/2.
当6和5的位置确定,则排列数为4!,考虑剩下的4个数的排列,满足条件的排列仅为2。
所以,答案为(6!/2)*(2/4!)=30
书上也有错的时候。
顺便编个程序验证一下:
int loca[7]; /* loca[1]-loca[6]标记数字 1-6 的排列位置*/
int mark[7]; /* mark[i](i=1,2...,6)标记位置i被占据*/
int sum=0;
int set(int next)
{
int i,j;
for(i=1;i<=6;i++)
{
if(mark[i]==0)
{
loca[next]=i;
mark[i]=1;
if(next==6)
{
if(loca[6]<loca[5] && loca[4]<loca[2] && loca[2]<loca[1] && loca[2]<loca[3])
{
sum++;
printf("\n");
for(j=1;j<=6;j++)printf("%d->%d,",j,loca[j]);
}
}
else set(next+1);
mark[i]=0;
}
}
}
main(){
int i;
for(i=1;i<=6;i++)mark[i]=0;
set(1);
printf("\nsum=%d",sum);
getch();
}
huangry
2001-07-18
打赏
举报
回复
一共是180种,6!/2/2/2/2=180
anjun
2001-07-18
打赏
举报
回复
不对,是小学五年级题目~~~~
starfish
2001-07-18
打赏
举报
回复
这个很简单吗,用容斥定理自己计算一下就可以了。初中生的题目~~
G.FWJ的追求者
本文探讨了一个有趣的
问题
:如何设计货币面额,使得能购买从1到n元的所有商品,重点在于找到最少的货币种类。通过二进制组合的方法,文章提供了一种高效的解决方案,并附带代码实现。
(二进制)追求者
本文介绍了一种算法,用于解决如何设计最少数量的货币面额,以便能够组合出从1到n的所有整数值。该
问题
源于一位篮球女神FWJ给追求者的小挑战,但其实质是一个经典的数学和计算机科学
问题
。
基于异或门的奇偶校验电路设计:完整指南
本文深入剖析异或门在奇偶校验电路中的核心作用,揭示其作为GF(2)域模2加法原语的数学本质;指出RTL中使用^=归约操作符优于手动链式书写,直接影响PPA;强调奇/偶校验不可简单互换,涉及亚稳态与时序鲁棒性;并解析三大落地挑战:毛刺传播、FPGA LUT资源映射效率及DFT可测性设计。
【Coze 扣子案例】第 22 期・教育篇:如何让错题成为孩子的进步阶梯?红叉背后的知识漏洞该怎么抓?
本文分享在Coze平台构建智能错题分析系统的方法,包括准备工作(创建智能体、设置变量、新建数据库)、工作流搭建及添加快捷指令。该系统可实现拍照识别、智能分析等功能,能为学生、教师、家长和教育机构带来诸多益处。
一段摩斯密码里的爱情故事
一名男子为了赢得心仪女子的心,必须解开她提供的复杂摩斯密码。经过网友们的共同努力,最终揭示了隐藏的信息“ILOVEYOUTOO”,成就了一段佳话。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章