重要声明:此文面向初学者
真心推荐Typora,对于与我类似的markdown/LaTeX初学者尤其方便
进入正题:众所周知,杨辉三角形(也称“帕斯卡三角形”,后同)长这样↓
即每一项等于左上方的数加右上方的数的和
学编程的人一般看作这样↓
即每一项等于左上方的数与上方的数之和。 写个简单的递推式。
#include
const int maxn=1e4+5;
int f[maxn],n;
int main(){
scanf("%d",&n);f[1][1]=1;
for(int i=2;i<=n;i++)
for(int j=1;j<=i;j++)
f[i][j]=f[i-1][j-1]+f[i-1][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
printf("%3d%c",f[i][j],j==i?'\n':' ');
return 0;
}
杨辉三角长啥样都知道了,那它与组合数有啥关系呢?
关系:
C
n
m
C^m_n
Cnm的值等于杨辉三角形第n行第m个数 递推公式:
C
n
m
=
C
n
−
1
m
−
1
+
C
n
−
1
m
C^m_n=C^{m-1}_{n-1}+C^{m}_{n-1}
Cnm=Cn−1m−1+Cn−1m
关系可以由递推公式得到。
实际上这里才进入正题
我就是来证个递推公式的 公式特写(Typora): 公式特写(Word)(感觉Word公式的效果好丑) : 代码啥的统一放后面了(因为太长了,而且突然想起没讲这玩意↓)。
C
n
m
=
n
!
m
!
(
n
−
m
)
!
C^m_n=\tfrac {n!}{m!\left(n-m\right)!}
Cnm=m!(n−m)!n! 这个通项公式咋来的呢?
组合公式就是由排列公式去掉重复的部分得到的
C
n
m
=
A
n
m
m
!
C^m_n=\dfrac{A^m_n}{m!}
Cnm=m!Anm 以下摘自百度百科并进行了LaTeX处理:
定义及公式
排列的定义:从
n
n
n个不同元素中,任取
m
m
m(
m
≤
n
m\le n
m≤n,
m
,
n
m,n
m,n均为自然数,下同)个不同的元素按照一定的顺序排成一列,叫做从
n
n
n个不同元素中取出
m
m
m个元素的一个排列;从
n
n
n个不同元素中取出
m
(
m
≤
n
)
m\left(m\le n\right)
m(m≤n)个元素的所有排列的个数,叫做从
n
n
n个不同元素中取出
m
m
m个元素的排列数,用符号
A
n
m
A^m_n
Anm表示。 计算公式:
A
n
m
=
n
(
n
−
1
)
(
n
−
2
)
.
.
.
.
.
.
(
n
−
m
+
1
)
=
n
!
(
n
−
m
)
!
A^m_n=n(n-1)(n-2)......(n-m+1)=\dfrac{n!}{(n-m)!}
Anm=n(n−1)(n−2)......(n−m+1)=(n−m)!n! 此外规定0! = 1 组合的定义:从
n
n
n个不同元素中,任取
m
(
m
≤
n
)
m\left(m\le n\right)
m(m≤n)个元素并成一组,叫做从
n
n
n个不同元素中取出
m
m
m个元素的一个组合;从
n
n
n个不同元素中取出
m
(
m
≤
n
)
m\left(m\le n\right)
m(m≤n)个元素的所有组合的个数,叫做从
n
n
n个不同元素中取出
m
m
m个元素的组合数。用符号
C
n
m
C^m_n
Cnm表示。 计算公式:
C
n
m
=
A
n
m
m
!
=
n
!
m
!
(
n
−
m
)
!
;
C
n
m
=
C
n
n
−
m
.
(
n
≥
m
)
C^m_n=\dfrac{A^m_n}{m!}=\dfrac{n!}{m!(n-m)!};C^m_n=C^{n-m}_n.(n\ge m)
Cnm=m!Anm=m!(n−m)!n!;Cnm=Cnn−m.(n≥m)
笔者小计:
C
n
m
=
C
n
n
−
m
C^m_n=C^{n-m}_n
Cnm=Cnn−m应该属于性质公式。。。
符号:
C
−
C
o
m
b
i
n
a
t
i
o
n
C -Combination
C−Combination 组合数
A
−
A
r
r
a
n
g
e
m
e
n
t
A -Arrangement
A−Arrangement 排列数(在旧教材为
P
−
P
e
r
m
u
t
a
t
i
o
n
P-Permutation
P−Permutation)
N
−
N
u
m
b
e
r
N -Number
N−Number 元素的总个数
M
−
M -
M− 参与选择的元素个数
!
−
F
a
c
t
o
r
i
a
l
! - Factorial
!−Factorial阶乘
个人认为排列组合数的定义和公式看完上述段落应该就会了。 关于排列组合数的性质这里就不再赘述(毕竟是初学者篇),请自行查询。
Markdown+LaTeX (Used Typora): CSDN似乎不支持\begin{align},所以只能放个截图再加个代码了。。 Markdown+LaTeX代码:
$$
C^{m}_{n}=\tfrac {n!}{m!\left( n-m\right) !}\\
\begin{align}
&C_{n-1}^{m-1}+C_{n-1}^{m}\\
=&\tfrac{\left(n-1\right)!}{(m-1)![n-1-(m-1)]!}+\tfrac{(n-1)!}{m!(n-1-m)!}\\
=&\tfrac{\left(n-1\right)!}{(m-1)!(n-m)!}+\tfrac{(n-1)!}{m!(n-1-m)!}\\
=&\tfrac{m\left(n-1\right)!}{m!(n-m)!}+\tfrac{(n-m)(n-1)!}{m!(n-m)!}\\
=&\tfrac{m\left(n-1\right)!+(n-m)(n-1)!}{m!(n-m)!}\\
=&\tfrac{m\left(n-1\right)!+n!-m(n-1)!}{m!(n-m)!}\\
=&\tfrac{n!}{m!(n-m)!}\\
=&C_n^m
\end{align}
$$
Word代码:
欢迎挑错。