棧的出棧順序有多少種

題目

N個數依次入棧,出棧的順序有多少種?

直接公式

令h(0) = 1,h(1) = 1
卡特蘭數滿足遞推式:
h(n) = h(0) * h(n - 1) + h(n -2) + ... + h(n -1)h(0) (n >= 2)
遞推關系的解為:

公式1

遞推關系的另類解:

公式2

常規分析

  • 首先,我們設f(n)代表序列個數為n的出棧序列種數。同時我們假設第一個出棧的序數是k。
  • 第一個出棧的序數k將1n的序列分成兩個序列;其中一個是1k-1,序列個數為k-1;另一個是k+1~n,序列個數是n-k。
  • 此時,我們若把k視為一個確定的序數,那么根據乘法原理,f(n)的問題就等價于序列個數為k-1的出棧序列種數乘以序列個數為n-k的出棧序列種數,即選擇k這個序數的出棧組合為f(k-1)*f(n-k)。
  • 而k可以選1到n,所以再根據加法原理,將k取不同值的序列種數相加,得到的總序列種數為:f(n) = f(0)f(n-1) + f(1)f(n-2) + ... + f(n-1)f(0)。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 你的夜,我為你挑燈 渡你,到我的彼岸 長夜漫漫 只想有你相伴 你的夜,我為你挑燈 不管緣聚緣散 你好,我心安 今生...
    文山鹿閱讀 340評論 73 27
  • 因為從小生長在一個人人追求完美甚至要強的家庭里,必然會有很多規矩。 比如,作為一個女孩,吃飯的時候應該怎么樣,和別...
    毛毛愛折騰閱讀 335評論 0 0
  • 葉散的時候,你明白歡聚。 花開的時候,你明白青春。 誰來了又走了,誰讓你變成了有故事的人。 沒有過去,沒有曾經,也...
    坐看云起時_wei閱讀 567評論 0 0
  • 其實也有那種突然對某個人有意見的時候…………要是都寫出來可能就沒朋友了………………哇靠我這個人怎么這樣的(;′⌒`)
    深海酸橙閱讀 205評論 0 0