子渊暑假和爸爸妈妈一起回了一趟湖南老家,老家坐落在湘南丘陵的一个小山包上,交通非常不便,从宁波出发先要坐二十四小时火车,再坐三个多小时的汽车,最后步行两小时才到家。
在火车站候车的时候,正好能够看见窗外的V字形站台,见子渊好奇地盯着站台看,爸爸心里有了一个主意。“子渊啊,爸爸有一个关于列车调度的问题,不知道你感不感兴趣?”
“列车调度?你是说我们今天要坐的这种列车吗?”
“是啊,铁路进行列车调度时, 常把站台设计成栈式结构的V字形站台,就像外面的那种(如右图所示)。那么现在我来考考你:
(1) 设有编号为1,2,3,4的四辆列车, 顺序开入栈式结构的站台, 则可能的出栈序列有多少种?如果是n辆列车呢?
(2) 若进站的四辆列车顺序如上所述, 那么是否能够得到1423,2413,3412和4312。的出站序列?为什么?
子渊从包里拿出纸笔计算起来,不一会纸上就写满了密密麻麻的答案:
可能的出栈序列:1234,1243,1324,1342,1432,2134,2143,2314,2341,2431, 3214,3241,3421,4321。
不可能的出栈序列:1423,2413,3124,3142,3412,4123,4132,4213,4231,4312。
如果是n辆列车,可能的出栈序列会有多少种?需要先将n取较小值时的可能序列数量计算出来,观察是否有规律,设n辆列车可能的出栈序列数量为F (n),则有:
F(1) = 1;
F(2) = 2;
F(3) = 5;
F(4) = 14;
子渊看来看去也找不出规律,只好做罢。
再来看看为什么1423,2413,3412和4312等序列是不可能出现的,子渊似乎发现了些什么:
在1423序列中,我们观察子序列423,发现2夹在4和3之间,即最大的数先出栈,最小的数中间出栈,中间的数最后出栈——这无论如何不可能出现,因为它违反栈“后进先出”的特点;同样2413序列中1夹在4和3之间,3412序列中1夹在4和2之间,4312序列中1夹在3和2之间,这都违反LOFI规律。
其他的不可能序列也可以按照同样的方法判断出来,但是由于知识结构的原因,虽然子渊能够看到这些,却不能从数学的角度加以归纳,也不能做出严格的数学证明。聪明的读者,如果你感兴趣的话,本文的后面有一些练习,其中练习2就是要求对下面的引理做一个数学上的严格证明。
子渊把自己思索的结果告诉了爸爸,并请爸爸解决自己的疑问。
爸爸首先对子渊独立思考的精神和思考问题的方法都给予了表扬,然后告诉他:
要求n辆列车可能的出栈序列总量,我们可以采用递归分治的思想(关于递归分治的详细内容,以后我会在系列文章中介绍)。我们把过程分成两步,根据
在火车站候车的时候,正好能够看见窗外的V字形站台,见子渊好奇地盯着站台看,爸爸心里有了一个主意。“子渊啊,爸爸有一个关于列车调度的问题,不知道你感不感兴趣?”
“列车调度?你是说我们今天要坐的这种列车吗?”
“是啊,铁路进行列车调度时, 常把站台设计成栈式结构的V字形站台,就像外面的那种(如右图所示)。那么现在我来考考你:
(1) 设有编号为1,2,3,4的四辆列车, 顺序开入栈式结构的站台, 则可能的出栈序列有多少种?如果是n辆列车呢?
(2) 若进站的四辆列车顺序如上所述, 那么是否能够得到1423,2413,3412和4312。的出站序列?为什么?
子渊从包里拿出纸笔计算起来,不一会纸上就写满了密密麻麻的答案:
可能的出栈序列:1234,1243,1324,1342,1432,2134,2143,2314,2341,2431, 3214,3241,3421,4321。
不可能的出栈序列:1423,2413,3124,3142,3412,4123,4132,4213,4231,4312。
如果是n辆列车,可能的出栈序列会有多少种?需要先将n取较小值时的可能序列数量计算出来,观察是否有规律,设n辆列车可能的出栈序列数量为F (n),则有:
F(1) = 1;
F(2) = 2;
F(3) = 5;
F(4) = 14;
子渊看来看去也找不出规律,只好做罢。
再来看看为什么1423,2413,3412和4312等序列是不可能出现的,子渊似乎发现了些什么:
在1423序列中,我们观察子序列423,发现2夹在4和3之间,即最大的数先出栈,最小的数中间出栈,中间的数最后出栈——这无论如何不可能出现,因为它违反栈“后进先出”的特点;同样2413序列中1夹在4和3之间,3412序列中1夹在4和2之间,4312序列中1夹在3和2之间,这都违反LOFI规律。
其他的不可能序列也可以按照同样的方法判断出来,但是由于知识结构的原因,虽然子渊能够看到这些,却不能从数学的角度加以归纳,也不能做出严格的数学证明。聪明的读者,如果你感兴趣的话,本文的后面有一些练习,其中练习2就是要求对下面的引理做一个数学上的严格证明。
子渊把自己思索的结果告诉了爸爸,并请爸爸解决自己的疑问。
爸爸首先对子渊独立思考的精神和思考问题的方法都给予了表扬,然后告诉他:
要求n辆列车可能的出栈序列总量,我们可以采用递归分治的思想(关于递归分治的详细内容,以后我会在系列文章中介绍)。我们把过程分成两步,根据