排列组合:公式及推导

news/2024/11/14 14:38:11/文章来源:https://www.cnblogs.com/adsd45666/p/18353864

排列组合:公式及推导

引入

定义:

排列:从指定个数的元素中取出指定个数的元素进行排序;(考虑元素的顺序)
组合:从给定个数的元素中仅仅取出指定个数的元素;(不考虑元素的顺序)

加法&乘法原理

加法原理:

完成一个工程可以有 \(n\) 类办法, \(a_i(i\in[1,n])\) 代表第\(i\) 类方法的数目。则完成这件事共有 \(S=a_1+a_2+a_3+···+a_n\) 种不同的方法。

乘法原理:

完成一个工程需要 \(n\) 个步骤,\(a_i(i\in[1,n])\) 代表第 \(i\) 个步骤的不同方法的数目。那么完成这个工程共有 \(S=a_1 \times a_2 \times a_3 \times ··· \times a_n\) 种不同的方法。

排列与组合基础

排列数:

\(n\) 个不同的元素中,任取 \(m(m \leqslant n,m与n均为自然数,下同)\) 个元素按照一定的顺序排成一列,叫做从 \(n\) 个不同元素中 \(m\) 个元素的一个排列;从 \(n\) 个不同元素中取出 \(m(m \le n)\) 个元素的所有排列个数,叫做从 \(n\) 个元素中取出 \(m\) 个元素的排列数,用符号 \(A^m_n\) (或者是 \(P^m_n\) )表示。
排列的计算公式如下:

\(A^m_n =n(n-1)(n-2)..(n-m+1)=\frac{n!}{(n-m)!}\)

\(n!\) 代表 \(n\) 的阶乘,即 \(6!=1 \times 2 \times 3 \times 4 \times 5 \times 6\)

公式可以这样理解: \(n\) 个人选 \(m\) 个来排队,队长为 \(n\) ( \(m \leqslant n\) ),第一个位置可以选的人为 \(n\) 个,第二个位置可以选的人为 \(n-1\) 个,以此类推,第 \(m\) 个(最后一个)可以选 \(n-m+1\) 个,得:

\[A^n_m =n(n-1)(n-2)...(n-m+1)= \frac{n!}{(n-m)!} \]

全排列: \(n\) 个人来排队,队长为 \(n\) 。第一个位置 可以选 \(n\) 个,第二个位置可以选 \(n-1\) 个,依此类推得:

\[A^n_n=n(n-1)(n-2)...3 \times 2 \times 1=n! \]

全排列是排列数的一个特殊情况。

组合数:

\(n\) 个不同元素中,任取 \(m(m \leqslant n)\) 个元素组成一个集合,叫做从 \(n\) 个不同元素中取出 \(m\) 个元素的一个组合;从 \(n\) 个不同元素中q取出 \(m(m \leqslant n)\) 个元素组成的所有组合的个数,叫做从 \(n\) 个不同元素中取出 \(m\) 个元素的组合数,用符号 \((^n_m)\) 来表示,读作 $\left\lceil n选m \right\rfloor $ 。
组合数计算公式:

\[( ^n_m )=\frac{A^m_n}{m!}=\frac{n!}{m!(n-m)!} \]

如何理解上述公式?考虑 \(n\) 个人选 \(m\) 个出来 \((m \leqslant n)\) ,不排队,不在乎顺序。如果关心顺序,则为 \(A^m_n\) ,若不关心那么就要除掉重复,那么重复了多少?同样 \(m\) 个人,还要 $\left\lceil 全排列 \right\rfloor $ 得 \(m!\) ,所以得:

\[( ^n_m )\times m!=A^m_n \]

\[(^n_m )=\frac{A^m_n}{m!}=\frac{n!}{m!(n-m)!} \]

组合数也常用 \(\complement^m_n\) 表示,即 \(\complement^m_n=(^n_m)\)

组合数也被称为 $\left\lceil 二项式系数 \right\rfloor $ ,下文会阐述其联系。

特别的,当 \(m>n\) 时,\(A^m_n=(^n_m)=0\)

插板法

插板法是用于求一类给相同元素分组的方案数的一种技巧,也可用于求一类线性方程组的解的组数。

正整数和的题目

\(Q_1\) :现有 \(n\) 个完全相同的元素,要求将其分为 \(k\) 组,保证每组至少有一个元素,共有多少种分法?

对于这个问题我们可以抽象理解为在 \(n-1\) 个空隙中插入 \(k-1\) 块隔板,将 整个长队分为 \(n\) 部分,两块隔板不能相邻。这样就变成了经典的组合数问题。可得

\[ans=\complement^{k-1}_{n-1}=\frac{{(n-1)}!}{{(k-1)}!(n-k)!} \]

其本质是求 \(x_1+x_2+x_3+...+x_k=n\) 的正整数解的组数。

非负整数和的题目

\(Q_2\) :若允许为空呢?

此时没法插板了,因为可能会出现很多板子插到一个空的情况,非常不好计算。因此,我们考虑加以约束,使其转化为有限制的 \(Q_1\) 。先借 \(k\) 个元素,平均分配到 \(k\) 组,在 \(n+k\) 个元素形成的 \(n+k-1\) 个空里插板,则

\[ans=\complement^{k-1}_{n+k-1}=\complement^{n}_{n+k-1} \]

由于元素是完全相同的,在分完组后,从每一组中都拿走一个,对结果是完全没有影响的,也就是结果相等。
其本质是求 \(x_1+x_2+x_3+...+x_k=n(x_i\geqslant 0)\) 的非负整数解的组数。

不同下界整数和的题目

\(Q_3\) :若每组至少有 \(t\) 个元素呢?

此时,对于插板法,会导致版的间隔增大,不好计算。同 \(Q_2\) ,看看如何转化为 \(Q_1\) 。先将 \(t-1\) 个元素压入各组,则转化为在 \(n-k(t-1)-1 (特别的,定义n-1>k(t-1))\) 个空隙中插板。

\[ans=\complement^{k-1}_{n-k(t-1)-1} \]

不相邻的排列

\([1,n]\) 中选 \(k\) 个,这 \(k\) 个数中任何两个数都不相邻的组合由有 \(\complement^{k}_{n-k-1}\) 种。

二项式定理

二项式定理阐明了一个展开式的系数:

\[(a+b)^n= \sum\limits_{i=0}^n (^n_i)a^{n-i}b^i \]

采用数学归纳法:

手演一遍,会发现对于 \({(a+b)}^n\)\(n=0\) 时,此时等于 \(1\) ,以此类推,分别为

为一时: \({(a+b)^1}=a+b\)
为二时: \({(a+b)}^2=(a+b)(a+b)=a^2+2ab+b^2\)
为三时: \({(a+b)^3}=(a+b){(a+b)}^2=a^3+3a^2b+3ab^3+b^3\)

现在可以找一下规律。

我们将其写作一个塔的样子:

现在只看系数:

是不是非常熟悉?
是的,这便是杨辉三角:

杨辉三角是二项式定理的一种图形上的显式呈现,杨辉三角向我们呈现了组合的一个性质,即:

\[\complement^{k-1}_{n}+\complement^{k}_{n}=\complement^{k}_{n+1} \]

不仅如此,对于 \((a+b)^n\) 的展开式来说,其中的各项系数依次对应杨辉三角的第 \(n+1\) 行中的每一项 (二项式定理)。

二项式系数

二项式系数可以排列成帕斯卡三角形(杨辉三角形)。若将二项式系数排成一行,在从上向下排列,则构成帕斯卡三角形。

二项式系数常见于各数学领域中,尤其是组合数学。事实上,其可以理解为从 \(n\) 个相异的的元素中选出 \(k\) 个元素的方法数。二项式系数的定义可以推广至 \(n\) 是复数的情况,而且仍被称为二项式系数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/781408.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

USB协议详解第5讲(USB描述符-接口描述符)

1.USB描述符 USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符。今天主要是学习USB接口描述符的组成。 2.接口描述符组成 前面讲了设备描述符和标准配置描述符,本篇我们讲解接口描述符。首先要明确…

RabbitMQ Web管理界面简介

Overview TotalsQueued messagesReadyNumber of messages that are avaliable to be delivered now.待消费的消息数量 一般来说,如果队列中ready状态的消息数量比较多,则说明消费者的处理能力可能不足,可以考虑适当增加消费者UnackedNumber of messages for which the serve…

并发修改异常 ConcurrentModificationException详解

并发修改异常 ConcurrentModificationException详解异常产生原因:并发修改异常指的是在并发环境下,当方法检测到对象的并发修改,但不允许这种修改时,抛出该异常。异常抛出在ArrayList类中的checkForComodification()方法中。checkForComodification()方法实际上就是当modCo…

2024暑假集训测试21

前言比赛链接。T1 写得和正解差不多但少了个细节炸 long long 了;T2 只会 \(n^3\) 的本来只有 \(50pts\),但考虑出题人大概率会搞一个 \(n\) 越大 \(T\) 越小,所以对于 \(n\) 很大的直接 \(rand\) 正确率还是有的,所以获得了 \(80pts\);T3 不会;T4 没有和 \(n\) 取 \(\m…

线性整数规划的三道经典例题

目录一、背包问题1.模型建立2.代码实现二、指派问题1.模型建立2.代码实现(1)输入目标函数系数(2)输入不等式约束(3)输入等式约束(4)调用函数求解三、钢管切割问题1.问题分析2.模型建立(1)利用枚举法找到料头小于等于0.9的切割方法(2)得到目标函数与约束3.代码实现(…

qt 设计界面中 scrollarea等子控件内部widget布局方法

默认这个右键布局里的选项为灰色,点不了,可以先往widget中拖一个按钮进去,然后再右键布局,然后再把按钮删掉,就相当于在设计界面 就设置好布局了

DataWhale-2024夏令营第四期-从零入门AI生图原理实践-学习笔记

DataWhale-2024夏令营第四期-从零入门AI生图原理&实践-学习笔记 Datawhale (linklearner.com)学习链接 AI生图基础知识 一、文生图(Text-to-Image Generation)历史随着深度学习的发展,近些年来越来越多的AI生图效果通过大语言模型得到了一定的提升。文生图的历史:文生图的…

036.Vue3入门,组件的生命周期

1、App.vue代码如下:<template><div><h3>主页面</h3><button @click="change">改变</button></div> </template><script> export default {beforeCreate() { console.log(beforeCreate) },created() { conso…

035.Vue3入门,使用具名插槽Slot中,同时显示主页面和多个插槽页面内容

1、App.vue代码如下:<template><div><h3>主页面</h3><Slot001><template #s1="slotProps"><h4>{{ msg }} === {{ slotProps.msg1 }}</h4></template><template #s2="slotProps"><h4>{…

CF1264E Beautiful League 题解

CF1264E 你有一张竞赛图,给你竞赛图中 \(m\) 条边的方向,让你对于没有给定的边确定方向使得整张图的三元环个数最多 \(n \leq 50, m \leq \frac{(n-1)n}{2}\)费用流好题三元环是一个非常难考虑的东西,我们考虑求他的补集:不是三元环的个数最少我们发现不是三元环的情况是存…

一步一步微调小模型

本文记录一下,使用自顶向下的编程法一步步编写微调小语言模型的代码。微调一个语言模型,本质上是把一个已经预训练过的语言模型在一个新的数据集上继续训练。那么一次微调模型的任务,可以分为下面三个大个步骤(不包含evaluation):加载已经预训练好的模型和新的数据集 预处…

最全MySQL面试20题和答案(三)

接第二期的MySQL面试二十题,这是之后的20题!视图 1. 为什么要使用视图?什么是视图?为了提高复杂 SQL 语句的复用性和表操作的安全性,MySQL 数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的…