相关数学理论和公式(排列组合)
2017-07-17 21:09
197 查看
基本公式
\[A_n^m=\frac{n!}{(n-m)!}\]\[C_n^m=\frac{A_n^m}{m!}=\frac{n!}{(n-m)!m!}\]
\[C_n^m=C_n^{n-m}\]
\[C_n^m=C_{n-1}^m+C_{n-1}^{m-1}\]
特殊排列组合
不同物品可重复选择m个物品:\(C_{n+m-1}^m\)有k个不同的不同物品集,物品总数是n,物品集内的物品都完全相同,每个物品集的数量是\(n_1,n_2,\cdots,n_k\),则这n个物品的排列数为\[n!/n_1!/n_2!/n_3!/\cdots/n_k!\]
n个有标号\(1,2,3,\cdots,n\)的顶点的树的数目是\(n^{n-2}\)
圆周排列
\(Q(N,R)\)代表N中选R个的圆周排列
\[Q(N,R)=A(N,R)/R\]
\[Q(N,N)=(N-1)!\]
生成排列(允许可重集)
void dfs(int step){ if(step == n){ for(int i=1; i<n; i++) cout<<a[i]<<' '; cout<<a <<endl; return; } for(int i=1; i<=n; i++) if(book[i]<=2) //这里表示重复的数最多可以有两个 { a[step+1]=i; book[i]++; dfs(step+1); book[i]--; } }
生成组合
二进制法for(int i=0;i<=(1<<n)-1;i++){ for(int j=0;j<n;j++){ if(i&(1<<j)) cout<<a[j]<<" "; } cout<<endl; }
相关文章推荐
- 相关数学理论和公式(同余问题)
- 相关数学理论和公式(素数)
- 相关数学理论和公式(基础知识杂选)
- 排列组合_组合_数学公式
- LaTex——数学相关(公式)
- 和3D相关的一些数学概念和公式
- Math类和Random类(数学公式相关类)
- 统计相关的基本数学公式
- 深度学习之二——相关数学基础(线性代数理论)
- 模型汇总22 机器学习相关基础数学理论、概念、模型思维导图分享
- 为什么我的大学数学相关理论学得差
- LaTex 帮老板分忧解难之路(一) 单双混栏中的algorithm块,超长数学公式换行及相关设置
- 机器学习理论与实战(八)回归 相关公式详解
- 潜在语义索引(LSI)相关公式推导
- MeteoInfoLab脚本示例:LaTeX写数学公式
- LaTeX 数学公式大全!
- 和机器学习和计算机视觉相关的数学(一)
- Latex数学公式编写
- mathtype输入latex数学公式