首页 > 其他分享 >数论——组合数学入门

数论——组合数学入门

时间:2023-05-20 09:56:59浏览次数:35  
标签:排列 入门 组合 数论 元素 个数 times 数学 ldots

排列组合

排列就是指从给定个数的元素中取出指定个数的元素进行排序;组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。--------OI Wiki

乘法原理和加法原理

加法原理,就好比一个工作,有 \(n\) 个解决的方案,第 \(i\) 项方案有 \(a_{i}\) 种不同的实现方式,所以这个工作有 \(a_{1}+a_{2}+a_{3}+\ldots+a_{n}\) 种方式来解决。

乘法原理,就好比一个工作,有 \(n\) 个步骤,第 \(i\) 步有 \(a_{i}\) 种方法来完成,所以这个工作的方式有 \(a_{1}\times a_{2}\times a_{3}\times \ldots \times a_{n}\) 种方式来解决。

排列数

给定 \(n\) 个数,从中选取 \(m\) 个数形成一个排列,可能的排列的数量,用 \(A_{n}^{m}\) 来表示(给定的数都为正整数)。

排列的计算公式:

\[A_{n}^{m}=n\times (n-1)\times (n-2)\times \ldots \times (n-m+1)=\frac{n!}{(n-m)!},n,m\in \mathbb{N^{*}},m\le n \]

其实就是分子分母同乘一个 \((n-m)!\)。

其中 \(n!=1\times 2\times 3\times \ldots \times n\)。

全排列就是当 \(n=m\) 的时候的一种特殊情况,此时 \(A_{n}^{n}=n!\)。

组合数

区别就是,排列数是要求顺序的,而组合数是从 \(n\) 个元素里面选取 \(m\) 个数组成一个集合,问有多少种可能,通常用 \(C_{n}^{m}\) 来表示。

组合数计算公式:

\[C_{n}^{m}=\frac{n!}{m!(n-m)!} \]

可以发现只比排列的公式分母多了一个 \(m!\),因为不考虑顺序,所以可以想到,挑出来的 \(m\) 个元素组成的集合,里面的排列数是 \(m!\),而这里面的元素组成的集合都是相同的,也就是这 \(m\) 个数本来应该算一个,但是排列里面是算了 \(m!\),所以排列的公式除以 \(m!\) 即为我们要求的答案。

现在人们习惯用 \(\binom{n}{m}\) 表示 \(n\) 个元素里面选 \(m\) 个,但是我个人觉得不如用 \(C_{n}^{m}\) 直观,但我们还是要了解这个表示方式。

标签:排列,入门,组合,数论,元素,个数,times,数学,ldots
From: https://www.cnblogs.com/Multitree/p/17416800.html

相关文章

  • [基础数论]同余方程笔记
    前言在学习本节内容前,请确保已完成了二元不定方程的学习。同余方程有无解的判别对于一个方程形如:\[ax\equivb\pmodm\]其中\[a,b\in\mathbbZ,m\in\mathbbZ^+\]并令\[d=(a,m)\]若\(d\nmidb\),则方程\(ax\equivb\pmodm\)无解。若\(d\midb\),......
  • [基础数论]不定方程笔记
    前言在学习本节内容前,最好先学习同余的基本性质以加深理解。一堆定理定理1:若\[a,b,m,n\in\mathbbZ,c\mida,c\midb\]则\[c\mid(ma+nb)\]证明:令\(a=ce,b=cf\),代入\(ma+nb\)再提公因式即可。定理2:若\[a,b,c\in\mathbbZ\]则\[(a+cb,b)=(a,b)\]证......
  • 【数论】Rust使用Miller-Rabin primality test判别素数
    题目地址https://ac.nowcoder.com/acm/contest/57677/A代码usestd::io::{self,BufRead,Write};fnis_prime_triival(n:i128)->bool{ifn<=1{returnfalse;}ifn==2{returntrue;}ifn%2==0{retur......
  • Java开发 Shiro框架详解(轻松入门)
    ShiroShiro简介什么是Shiro?ApacheShiro是一个Java的安全(权限)框架。Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成,认证,授权,加密,会话管理,Web集成,缓存等.官网:shiro.apache.org/官方文档十分钟快速入门:shiro.a......
  • Spring Boot入门案例
    一、实验目的和要求1、掌握使用IDEA通过Maven和SpringInitializr的方式创建SpringBoot应用程序;2、掌握Maven的工作原理;3、了解spring-boot-starter-parent的配置内容;4、掌握配置场景依赖启动器starter的方式,了解starter的原理;5、掌握利用starter扩展Sp......
  • UE4命令行编译工程入门
    0背景笔者是个UE4的小白,本文主要记录了一个小白是如何从零UE4的基础,一步步在命令行打出iOS的ipa包的尝试过程,本文比较浅,适合小白做为UE4工程的入门资料(UE大神可自动忽略本文);1构建流程UE4工程的构建会涉及以以下几个步骤:编译所有的源代码;将所需的内容转化(cook)为目标平台......
  • docker从入门到实践学习笔记【环境ubuntu16.04】【一】
    镜像加速国内从DockerHub拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker官方和国内很多云服务商都提供了国内加速器服务,例如: Docker官方提供的中国registrymirrorhttps://registry.docker-cn.com七牛云加速器https://reg-mirror.qiniu.com/ 我们以Docker官......
  • docker从入门到实践学习笔记【环境ubuntu16.04】【二】
     目录获取镜像 运行容器列出镜像虚悬镜像中间层镜像 删除本地镜像批量删除镜像  镜像是docker的三大组件之一。Docker运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker会从镜像仓库下载该镜像。 获取镜像 从Docker镜像仓库获取镜像的命令是dockerpull。......
  • docker从入门到实践学习笔记【环境ubuntu16.04】【三】
    目录 新建容器并启动启动已经终止的容器后台运行终止容器进入容器导入和导出容器导出容器导入容器删除容器清理所有终止状态的容器新建容器并启动 dockerrun 例如,下面的命令输出一个“HelloWorld”,之后终止容器 $dockerrunubuntu:14.04/bin/echo'Helloworld'Hellow......
  • docker从入门到实践学习笔记【环境ubuntu16.04】【四】
    目录数据卷创建一个数据卷查看所有数据卷查看指定数据卷的详细信息启动容器的同时挂在数据卷查看容器的信息删除数据卷在容器销毁时自动删除数据卷挂载主机目录作为数据卷挂载一个本地主机文件作为数据卷  数据卷数据卷特性:1.可以在容器之间共享和重用2.对数据卷的修改立马生效3.......