学习笔记-排列组合问题

这篇学习笔记探讨了排列组合问题,包括全排列的解法,并通过一个有趣的身高排队问题来阐述,其中涉及到如何将12个身高不同的人分为两排,每排从矮到高排列且第二排比第一排高。问题转化为计算特定的入栈出栈序列,即卡特兰数,其计算公式为C(2n,n)/(n+1)。" 8843043,1183100,C++编程:单链表反转详解,"['C++编程', '数据结构与算法', '链表操作']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了一天,头大了。数学的问题真是越看越深,无敌洞嘛简直就是,永远有你想不到的变态题目和解法。

算了,还是来点轻松的。。。



问题1 全排列

解法参考:

http://dongxicheng.org/structure/permutation-combination/


问题2 身高排队问题

12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种

按照身高进行排序,从第一个人开始站位置

0 表示站在第一排 1表示站在第二排

第一个人的位置必然为 0。1的出现,之前的数只能在该数的前面,或者左边。

对于每个 1 而言,之前的0的个数大于1的个数大。

看成是入栈出栈问题,入栈看做0,出栈看做1,求给定6个元素合法的入栈出栈序列

即catalen数,结果为C(2n,n)/(n+1) 

卡特兰数的相关介绍:

http://www.cnblogs.com/JMDWQ/archive/2012/07/08/2581255.html

http://blog.youkuaiyun.com/duanruibupt/article/details/6869431





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值