1樓:匿名使用者
分析:對於每一個數來說,必須進棧一次、出棧一次。我們把進棧設為狀態『1』,出棧設為狀態『0』。
n個數的所有狀態對應n個1和n個0組成的2n位二進位制數。由於等待入棧的運算元按照1‥n的順序排列、入棧的運算元b大於等於出棧的...
n個元素進棧,共有多少種出棧順序
2樓:匿名使用者
冷凝水**系統**蒸汽系統排出的高溫冷凝水,可最大限度地利用冷凝水的熱量,節約用水,節約燃料。對工廠的節能降耗,提高經濟效益有顯著的作用。冷凝水**系統大致可分為開式**系統和閉式**系統兩種。
3樓:匿名使用者
答案:2n!
制/((n+1)n!n!) 設bn表示n個元素出棧bai序列的種du數,
zhi顯然b1=1, b2=2,如下2種: 1,2 2,1 b3=5,如下5種: 1,2,3 1,3,2 2,1,3 2,3,1 3,2,1 一般地
daobn=2n!/((n+1)n!n!),並滿足遞推關係 bn= b0*bn-1+ b0*bn-1+…+ bn-1*b0,其中b0=1 4
n 個元素順序入棧,則可能的出棧序列有多少
4樓:悽清的小白鼠
我來補充吧,其實進棧出棧是可以同時進行的,並不一定要全部進去再出來,可以先進一部分再出來,所以關鍵是從那個開始先出
1.第一個先出的為d 則必須為dcba
2.第一個出來的是c則可為 cdba (abc依次進然後c出來d進去再出來然後ba出來) 也可為cbad (cb出來d進 、出,a出)也可為cbda 就是c之前的ab必須先b再a 因為是a先進而b是後進(注意是沒有出去)
3、同理第一個為b時可以為 bcda、bdca、bacd、badc、bcad(bdac是不行的因為要d排第二必須c進去而沒有出來也就是說c必須先a而出)
5樓:憑實陀雪
n個資料依次入棧,出棧順序種數的遞推公式如下:
f(n)=∑(f(n-1-k)*fk);其中k從0到n-1已知f0=1,
f1=f0*f0=1
f2=f1*f0+f0*f1=2
f3=f2*f0+f1*f1+f0*f2=5……證明的話,對於n個資料,我只看第一個資料的出入棧順序:
第一個資料入棧到出棧之間可以包含0,1,2…n-1個資料的出入棧,相應的,第一個資料出棧之後,還有n-1,n-2…2,1,0個資料需要出入棧
根據組合數學裡面的乘法原理,需要把第一個資料出棧前後的種數相乘根據加法原理,需要把第一個資料出入棧的n種方式全加起來於是就得到了那個遞推公式,不過,要找出一個直接計算fn的公式似乎不太好辦。
n個元素進棧,共有多少種出棧順序?
6樓:鑫匆轎
近日在複習資料結構,看到棧的時候,發
說來慚愧,以前學資料結構的時候竟然沒有考慮過這個問題。最近在看動態規劃,所以「子問題」這3個字一直在我腦中徘徊,於是解決這個問題的時候我也是用類似「子問題」的方法,說白了就是遞推公式。
我們把n個元素的出棧個數的記為f(n), 那麼對於1,2,3, 我們很容易得出:f(1) =1//即 1f(2)= 2
//即 12、21f(3)= 5//即 123、132、213、321、231
然後我們來考慮f(4), 我們給4個元素編號為a,b,c,d, 那麼考慮:元素a只可能出現在1號位置,2號位置,3號位置和4號位置(很容易理解,一共就4個位置,比如abcd,元素a就在1號位置)。
分析:1) 如果元素a在1號位置,那麼只可能a進棧,馬上出棧,此時還剩元素b、c、d等待操作,就是子問題f(3);
2) 如果元素a在2號位置,那麼一定有一個元素比a先出棧,即有f(1)種可能順序(只能是b),還剩c、d,即f(2), 根據乘法原理,一共的順序個數為f(1) * f(2);
3) 如果元素a在3號位置,那麼一定有兩個元素比1先出棧,即有f(2)種可能順序(只能是b、c),還剩d,即f(1),
根據乘法原理,一共的順序個數為f(2) * f(1);
4) 如果元素a在4號位置,那麼一定是a先進棧,最後出棧,那麼元素b、c、d的出棧順序即是此小問題的解,即 f(3);
結合所有情況,即f(4) = f(3) + f(2) * f(1) + f(1) * f(2) + f(3);
為了規整化,我們定義f(0) = 1;於是f(4)可以重新寫為:
f(4) = f(0)*f(3) + f(1)*f(2) + f(2) * f(1) + f(3)*f(0)
然後我們推廣到n,推廣思路和n=4時完全一樣,於是我們可以得到:
f(n) = f(0)*f(n-1) + f(1)*f(n-2) + ... + f(n-1)*f(0)即
於是上網搜尋一下,原來真的有這麼一個公式:
c(2n,n)/(n+1)
(c(2n,n)表示2n裡取n),並且有個名字叫
有n個入棧元素依次進棧,則有多少種出棧序列
7樓:小熙
你的問題的答案為2的n-1次方個。
根據你的問題可以轉換為:1,2,3,4,n。這n個數字依次按從小到大的順序入棧,那出來的序列有多少種。
已經驗證
當n=1時,有1種,
當n=2時,有2種,
當n=3時,有4種,
當n=4時,有8種,
根據規律可以推算出:y(n)=2^(n-1)。
證明:當n≥1時
通過觀察可以得到
式1:y(n)=y(n-1)+y(n-2)+y(n-3)+.+y(1)+1
式2:y(n-1)=y(n-2)+y(n-3)+.+y(1)+1那麼y(n)-y(n-1)=y(n-1)
也就是y(n)=2*y(n-1)
那麼y(n)=2^(n-1)*y(1),
因為y(1)=1,那麼y(n)=2^(n-1)。
已知入棧順序的n個元素求合理的出棧序列有多少種
8樓:heart阿飛
答案:2n!/((n+1)n!
n!) 設bn表示n個元素出棧序列的種數,顯然b1=1, b2=2,如下2種: 1,2 2,1 b3=5,如下5種:
1,2,3 1,3,2 2,1,3 2,3,1 3,2,1 一般地bn=2n!/((n+1)n!n!
),並滿足遞推關係 bn= b0*bn-1+ b0*bn-1+…+ bn-1*b0,其中b0=1
「有n個元素依次進棧,則出棧序列有(n-1)/2種」對嗎
9樓:匿名使用者
明顯不對嘛,n=2時,假設這兩個數為1,2,則出棧序列可為12(1進1出,2進2出)或21(1進2進2出1出)應該是[1/(n+1)]*(2n)!/(n!*n!)
10樓:居曼嵐禹雄
不對這要用到排列組合,假設有n個數入棧,則出棧序列個數為從2n個數中任選n個數進行排列組合,然後再乘以1/(n+1)就得到了。由於排列組合的公式在這裡不好表示,所以只好用化簡後的公式表示,公式如下:
[1/(n+1)]*[2n*(2n-1)*(2n-2)/n*(n-1)*(n-2)]=[2n*(2n-1)*(2n-2)]/[(n+1)*n*(n-1)*(n-2)]
n個元素進棧,有幾種出棧方式
11樓:硪丨曖戀
我們把n個元素的出棧個數的記為f(n), 那麼對於1,2,3, 我們很容易得出:
f(1) = 1 //即 1
f(2) = 2 //即 12、21
f(3) = 5 //即 123、132、213、321、231
然後我們來考慮f(4), 我們給4個元素編號為a,b,c,d, 那麼考慮:元素a只可能出現在1號位置,2號位置,3號位置和4號位置(很容易理解,一共就4個位置,比如abcd,元素a就在1號位置)。
分析:1) 如果元素a在1號位置,那麼只可能a進棧,馬上出棧,此時還剩元素b、c、d等待操作,就是子問題f(3);
2) 如果元素a在2號位置,那麼一定有一個元素比a先出棧,即有f(1)種可能順序(只能是b),還剩c、d,即f(2), 根據乘法原理,一共的順序個數為f(1) * f(2);
3) 如果元素a在3號位置,那麼一定有兩個元素比1先出棧,即有f(2)種可能順序(只能是b、c),還剩d,即f(1),
根據乘法原理,一共的順序個數為f(2) * f(1);
4) 如果元素a在4號位置,那麼一定是a先進棧,最後出棧,那麼元素b、c、d的出棧順序即是此小問題的解,即 f(3);
結合所有情況,即f(4) = f(3) + f(2) * f(1) + f(1) * f(2) + f(3);
為了規整化,我們定義f(0) = 1;於是f(4)可以重新寫為:
f(4) = f(0)*f(3) + f(1)*f(2) + f(2) * f(1) + f(3)*f(0)
然後我們推廣到n,推廣思路和n=4時完全一樣,於是我們可以得到:
f(n) = f(0)*f(n-1) + f(1)*f(n-2) + ... + f(n-1)*f(0)即
n個元素順序入棧,出棧順序有多少種
設順序表l中有n個資料元素,則刪除該表中第i個元素需要移動()個元素
在一個長度為n的順序表中,刪除第i 1 i n 個元素時,需要移動的元素個數為n i。分析 在一個長度為n的順序表中,刪除一個元素時,有n個位置可供選擇。需要改變從第 i 1個元素起到第n個元素的儲存位置,即進行 從第i 1到第n個元素往前移動一個位置 共需移動n i個元素。擴充套件資料向已有順序表...
從n種不同的元素中選出m個元素合為「組」,一共可以合成多少種不同的「組」
有重複的組合 從n種不同的元素中選出m個元素合為一個 組 一共可以合成不同的 組 n m 1 m n 1 n n 1 n 2 n m 1 m 例如 從3種不同的元素a,b,c中選出2個元素合為一個組,aa,bb,cc,ab,ac,bc 一共可以合成 3 2 1 3 2 1 2 6 例如 從2種不同的...
c語言程式設計有N個整數,使其前面各數順序向後移動M個位置,最
大野瘦子 錯誤一修改 printf d a i 錯誤二修改 void move int a,int n,int m int t n int i,j 0 for i n m it j a i for i 0 ia i m a i for i 0 ia i t i 注意事項 呼叫自定義後移函式move ...