有思之士请帮忙考虑一下“火车车厢的占用问题”。

probeman 2003-01-22 06:29:44
一列火车有2n(n>0)个车厢,最初有n个人被间隔分配在车厢内,
每个车厢最多只能容一人,如图所示:

火车方向---->向前
------------------------------------------------------
车厢顺序号:|1.|2.|3.|4.|5.|6.|......|2n-1.|2n|~~~~~~~\
占用的情况:|人|空|人|空|人|空|......|人 |空|火车头-->


火车开动后,规定在保证所有人的相对顺序不变的前提下,每个人可以自愿放弃当前占用的车厢,转而占用他前面(车厢顺序号

增加方向)的空车厢,但不能跳过在他前面的人(这样就破还了所有人的相对顺序),即不能越人占用空车厢,而他放弃的车厢则

可以被他后面的人占用。且每个人只能向前移动,不能后退。

问火车到站时,车厢有多少种可能的占用情况?
n=1时,为2;n=2时,为5;n=3时,为14;对任意的n呢?
...全文
35 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
probeman 2003-01-22
  • 打赏
  • 举报
回复
谢谢。
dcyu 2003-01-22
  • 打赏
  • 举报
回复
你找一本数据结构的书吧,在树的记数中有讨论。
事实上这个问题就是出入栈的问题。可以归结为一棵二叉树的记数问题。推导还是比较复杂的,要用到级数和组合数学的东西。记住结论为好。
比如《数据结构(C语言版)》有论述。
probeman 2003-01-22
  • 打赏
  • 举报
回复
to dcyu(Dd):能不能讲一下思路?
dcyu 2003-01-22
  • 打赏
  • 举报
回复
Comb(2*n+2, n+1)/(n+2)
Comb(2*n+2, n+1)是组合数,在2*n+2个数中取n+1个数的所有组合。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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