相信大部分oier已經對楊輝三角很熟悉了,我第一次做楊輝三角的時候是剛學完for迴圈,有一道題是列印楊輝三角的,那時起,我就對這個幾何圖形的構造方式充滿了興趣。最近,在老師的引導下,我學習了有關楊輝三角的乙個小秘密。本文將簡單介紹楊輝三角與組合數之間的聯絡。
如果將(a+楊輝三角在教科書裡,最初是被用來**(a+b)n(a+b)^n
(a+b)n
(n
nn為非負整數)的每一項按字母a
aa的次數由小到大排列,就可以得到下面的等式:
( a+
b)0=
1(a+b)^0=1
(a+b)0
=1,它只有一項,係數為111;
( a+
b)1=
a+b(a+b)^1=a+b
(a+b)1
=a+b
,它有兩項,係數分別是1
11,111;
( a+
b)2=
a2+2
ab+b
2(a+b)^2=a^2+2ab+b^2
(a+b)2
=a2+
2ab+
b2,它有三項,係數分別是1
11,2
22,111;
( a+
b)3=
a3+3
a2b+
3ab2
+b3(a+b)^3=a^3+3a^2b+3ab^2+b^3
(a+b)3
=a3+
3a2b
+3ab
2+b3
,它有三項,係數分別是1
11,3
33,3
33,111;
……觀察右表,我們發現每一行的首末都是1,並且下一行的數比上一行多1個,中間各數都寫在上一行兩數中間,且等於它們的和,按照這個規律可以繼續將這個表寫下去:
**於網路,文段選自《北師大版義務教育教科書·數學》七年級下冊第25頁
b)n(a+b)^n
(a+b)n
的展開問題,通過發掘(a+
b)0(a+b)^0
(a+b)0
,( a+
b)1(a+b)^1
(a+b)1
,( a+
b)2(a+b)^2
(a+b)2
,( a+
b)3(a+b)^3
(a+b)3
的展開式,尋找到了展開式項數規律與各項係數的規律,將這兩個規律進行有序排列,得到了楊輝三角。
組合數是指從n
nn個元素中選出m
mm個元素的所有組合個數,在高中數學作為選修課程,在資訊學競賽中作為必修課程,不僅出現在noip初賽,還有可能隱含在上機測試的題目中。
通用計算公式:cnm
=n!m
!(n−
m)!,
cn0=
1c^_=\frac,c^_=1
cnm=m
!(n−
m)!n
!,c
n0=
1如果在求多個組合數的問題情況下,用程式實現組合數計算公式的時間複雜度會大大增加,下面通過楊輝三角與組合數的聯絡,使這時間複雜度降低。
解決問題:用動態規劃求從n
nn個元素中選出m
mm個元素的所有組合個數
設f [i
][j]
f[i][j]
f[i][j
]為已在i
ii個元素中抽取了j
jj將這兩種情況加起來便是f[i
][j]
f[i][j]
f[i][j
]的結果,由此得出式子:f[i
][j]
=f[i
−1][
j]+f
[i−1
][j−
1]f[i][j]=f[i-1][j]+f[i-1][j-1]
f[i][j
]=f[
i−1]
[j]+
f[i−
1][j
−1]
邊界條件:
**
#
include
using
namespace std;
int n,m;
int f[
1005][
1005];
intmain()
for(
int i=
1;i<=n;i++
)for
(int j=
1;j) f[i]
[j]=f[i-1]
[j]+f[i-1]
[j-1];
cout<
[m];
return0;
}
至此,我們若將整個f
ff陣列按矩陣的格式輸出,且去掉矩陣中多餘的0:
for
(int i=
0;i<=
5;i++
)
我們會得到以下結果:
程式輸出了楊輝三角!!!並且楊輝三角中第i
ii行第j
jj列的數字正是cij
c^_ci
j的結果!!!通過動態規劃這座橋梁,我們可以將組合數與楊輝三角聯絡起來,從今以後憑藉著f[i
][j]
=f[i
−1][
j]+f
[i−1
][j−
1]f[i][j]=f[i-1][j]+f[i-1][j-1]
f[i][j
]=f[
i−1]
[j]+
f[i−
1][j
−1]這個原理,我們在資訊學競賽的道路上,又多了一大解題利器。
組合數(楊輝三角)
原來組合數和楊輝三角是有關係的 楊輝三角上的每乙個數字都等於它的左上方和右上方的和 除了邊界 第n行,第m個就是,就是c n,m 從0開始 所以以後求楊輝三角或者組合數都可以用到下面的遞推公式 includeconst int n 2000 5 const int mod int 1e9 7 int...
組合數 楊輝三角
不難想到,我們可以用二維陣列來實現。上 include intmain i,j scanf d n for i 1 i n i a i 1 1 for i 2 i n i for i 1 i n i printf n return0 這樣我們實現了楊輝三角。更近一步,我們得到 用遞迴的辦法來實現也可...
楊輝三角(組合數) 排列組合
一道虐我的數學題,今天太累了,就簡單聊聊思想核心 題目如下 特斯拉公司的六位密碼被輕鬆破解後,引發了人們對電動車的安全效能的懷疑。李華聽聞後,自己設計了一套密碼 假設安全系統中有n個儲存區,每個儲存區最多能儲存存2個種類不同的訊號 可以不儲存任何訊號 有0和1這兩種訊號,其中0有a個,1有b個,單獨...