首页 > 其他分享 >一个小学生蒟蒻对简单排列组合的认知和了解

一个小学生蒟蒻对简单排列组合的认知和了解

时间:2024-08-06 22:28:20浏览次数:7  
标签:元素 dbinom sum 认知 cdots le 排列组合 小学生

一个小学生蒟蒻对简单排列组合的认知和了解

呃呃呃呃呃....可能写的有点不咋好...呃呃呃


神马是排列组合

神马是排列组合呢?我感觉我也不太清楚

排列组合是组合数学中的基础。排列就是指从给定个数的元素中取出指定个数的元素进行排序;组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。排列组合与古典概率论关系密切。

在高中初等数学中,排列组合多是利用列表、枚举等方法解题。


学习排列组合前置工作

在学习排列组合前我们要先学习两个原理

0-1.加法原理

加法原理是分类计数原理,常用于排列组合中,具体是指:做一件事情,完成它有 $n$ 类方式,第一类方式有 $M_1$ 种方法,第二类方式有 $M_2$ 种方法,…… ,第 $n$ 类方式有 $M_n$ 种方法,那么完成这件事情共有 $M_1+M_2+……+M_n$ 种方法。

完成一个工程可以有 $n$ 类办法,$a_i (1 \le i \le n)$ 代表第 $i$ 类方法的数目。那么完成这件事共有 $S=a_1+a_2+ \dots + a_n$ 种不同的方法。

0-2.乘法原理

完成一个工程可以有 $n$ 类办法,$a_i (1 \le i \le n)$ 代表第 $i$ 类方法的数目。那么完成这件事共有 $S=a_1 \times a_2 \times \dots \times a_n$ 种不同的方法。


学习简单排列组合

排列组合分为两个,分别为:

排列数和组合数

1-1.排列数

从 $n$ 个不同元素中,任取 $m$($ m \le 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) \dots (n-m+1) = \frac{n!}{(n-m)!}
$$
注: $n!$ 表示的是 $n$ 的阶乘, 如果 $n = 3$ 那么 $n! = 1 \times 2 \times 3$.

我猜你看不懂, 所以这个公式应该咋理解呢?

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

$$
A^m _n = n(n-1)(n-2) \dots (n-m+1) = \frac{n!}{(n-m)!}
$$

1-2.组合数

从 $n$ 个不同元素中,任取 $m \leq n$ 个元素组成一个集合,叫做从 $n$ 个不同元素中取出 $m$ 个元素的一个组合;从 $n$ 个不同元素中取出 $m \leq n$ 个元素的所有组合的个数,叫做从 $n$个不同元素中取出 $m$ 个元素的组合数,用符号 $\dbinom{n}{m}$ 来表示,读作「 $n$ 选 $m$m」。

组合数计算公式
$$
\dbinom{n}{m} = \frac{A^n _m}{m!} = \frac{n!}{m!(n-m)!}
$$
我还猜有人看不懂这个公式

那就理解一下

我们考虑 $n$ 个人选 $m$ 个出来($m \le n$),不排队,不在乎顺序。如果在乎顺序那么就是 $\mathrm A_n^m$,如果不在乎那么就要除掉重复,那么重复了多少?同样选出来的 $m$ 个人,他们还要「全排」得 $m!$,所以得:

$$
\begin{aligned} \dbinom{n}{m} \times m! &= \mathrm A_n^m\ \dbinom{n}{m} &= \frac{\mathrm A_n^m}{m!} = \frac{n!}{m!(n-m)!} \end{aligned}
$$

组合数也常用 $\mathrm C_n^m$ 表示,即 。$\displaystyle \mathrm C_n^m=\binom{n}{m}$现在数学界普遍采用 $\dbinom{n}{m}$ 的记号而非$\mathrm C_n^m$ 。

组合数也被称为「二项式系数」,下文二项式定理将会阐述其中的联系。

特别地,规定当 $m>n$ 时,$\mathrm A_n^m=\dbinom{n}{m}=0$。

1-3.插板法

插板法(Stars and bars)是用于求一类给相同元素分组的方案数的一种技巧,也可以用于求一类线性不定方程的解的组数。

1.3.1.正整数和的数目

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

考虑拿 $k - 1$ 块板子插入到 $n$ 个元素两两形成的 $n - 1$ 个空里面。

因为元素是完全相同的,所以答案就是 $\dbinom{n - 1}{k - 1}$ 。

本质是求 $x_1+x_2+\cdots+x_k=n$ 的正整数解的组数。

1.3.2.非负整数和的数目

问题二:如果问题变化一下,每组允许为空呢?

显然此时没法直接插板了,因为有可能出现很多块板子插到一个空里面的情况,非常不好计算。

我们考虑创造条件转化成有限制的问题一,先借 $k$ 个元素过来,在这 $n + k$ 个元素形成的 $n + k - 1$ 个空里面插板,答案为
$$
\binom{n + k - 1}{k - 1} = \binom{n + k - 1}{n}
$$

虽然不是直接求的原问题,但这个式子就是原问题的答案,可以这么理解:

开头我们借来了 $k$ 个元素,用于保证每组至少有一个元素,插完板之后再把这 $k$ 个借来的元素从 k 组里面拿走。因为元素是相同的,所以转化过的情况和转化前的情况可以一一对应,答案也就是相等的。

由此可以推导出插板法的公式:$\dbinom{n + k - 1}{n}$。

本质是求 $x_1+x_2+\cdots+x_k=n$ 的非负整数解的组数(即要求 $x_i \ge 0$)。

1.3.3.不同下界整数和的数目

问题三:如果再扩展一步,要求对于第 $i$ 组,至少要分到 $a_i,\sum a_i \le n$ 个元素呢?

本质是求 $x_1+x_2+\cdots+x_k=n$ 的解的数目,其中 x_i \ge a_i

类比无限制的情况,我们借 $\sum a_i$ 个元素过来,保证第 i 组至少能分到 a_i个。也就是令
$$
x_i^{\prime}=x_i-a_i
$$

得到新方程:
$$
\begin{aligned} (x_1{\prime}+a_1)+(x_2+a_2)+\cdots+(x_k^{\prime}+a_k)&=n\ x_1{\prime}+x_2+\cdots+x_k^{\prime}&=n-a_1-a_2-\cdots-a_k\ x_1{\prime}+x_2+\cdots+x_k^{\prime}&=n-\sum a_i \end{aligned}
$$

其中
$$
x_i^{\prime}\ge 0
$$

然后问题三就转化成了问题二,直接用插板法公式得到答案为
$$
\binom{n - \sum a_i + k - 1}{n - \sum a_i}
$$

1.3.4.不相邻的排列

1 \sim n 这 $n$ 个自然数中选 $k$ 个,这 $k$ 个数中任何两个数都不相邻的组合有 $\dbinom {n-k+1}{k}$ 种。

二项式定理

在进入排列组合进阶篇之前,我们先介绍一个与组合数密切相关的定理——二项式定理。

二项式定理阐明了一个展开式的系数:
$$
(a+b)n=\sum_{i=0}n\binom{n}{i}a{n-i}bi
$$

证明可以采用数学归纳法,利用 $\dbinom{n}{k}+\dbinom{n}{k-1}=\dbinom{n+1}{k}$ 做归纳。

二项式定理也可以很容易扩展为多项式的形式:

设 $n$ 为正整数,$x_i$ 为实数,

满足的非负整数解$(x_1 + x_2 + \cdots + x_t)^n = \sum_{满足 n_1 + \cdots + n_t=n 的非负整数解} \binom{n}{n_1,n_2,\cdots,n_t} x_1{n_1}x_2\cdots x_t^{n_t}$

其中的 $\dbinom{n}{n_1,n_2,\cdots,n_t}$ 是多项式系数,它的性质也很相似:

$$
\sum{\binom{n}{n_1,n_2,\cdots,n_t}} = t^n
$$


${\Huge \mathit{The \ \ \ \ End} } $

鸣谢:

OI Wiki:排列组合 - OI Wiki

标签:元素,dbinom,sum,认知,cdots,le,排列组合,小学生
From: https://www.cnblogs.com/zzy-hhh/p/18346105

相关文章

  • 一个蒟蒻小学生尝试学习高级排列组合
    一个蒟蒻小学生尝试学习高级排列组合呃呃呃呃呃呃,我不咋会写,如有不对的地方欢迎纠正紧接上文我们已经了解了基础的排列组合,我们可以接着往下学习排列组合的变种了.1.排列组合的变种1-1.多重集的排列数+多重组合数大家一定要区分多重组合数与多重集的组合数!两者是完......
  • 笔记——排列组合
    蓝月の笔记——排列组合篇摘要万恶的数学!Part1加乘原理小学奥数内容加法原理:当多个方案并列(即互不影响)时,总方案数为各个方案数之和例:共有\(k\)种交通工具可以从A地到B地,第\(i\)种交通工具有\(a_i\)班次,那么从A地到B地的总方案数为\(\sum_{1\lei\lek}a_i\)乘......
  • 可用于机器学习的排列组合枚举算法含passcal - c shap-c源码
    可用于机器学习的排列组合枚举算法含passcal-cshap-c源码1机器学习和数据挖掘• 特征选择:在机器学习中,需要从多个特征中选择最有价值的组合。通过枚举不同的特征组合,可以找到最佳的特征集合。• 超参数优化:在训练模型时,需要调整多个超参数。通过枚举不同的超参数组......
  • 认知杂谈5
    今日,我愿与大家探讨一则颇具争议性的见解:细思之下,元气之损,竟能悄然间让人的生活步履维艰,令人不禁骇然!倘若你近期深感力不从心,对周遭事物渐失热情,甚至被一股难以名状的消极情绪所笼罩,那么,是时候采取行动了。因为,这种无形的阴霾正悄无声息地侵蚀着你的生活根基,如同一个隐匿......
  • XTuner微调个人小助手认知
    基础任务:使用XTuner微调InternLM2-Chat-1.8B实现自己的小助手认知,如下图所示(图中的伍鲜同志需替换成自己的昵称),记录复现过程并截图。1微调前置基础本节主要重点是带领大家实现个人小助手微调,如果想了解微调相关的基本概念,可以访问XTuner微调前置基础。2准备工作环境......
  • pythonasm库分析,看看你和自学编程小学生的差距
    下面是pythonasm.asm库的源代码fromkeystoneimport*fromcapstoneimport*assembly_instructions=[]#储存汇编指令的列表#汇编指令写入列表defmov(reg1,reg2):assembly_instructions.append(f"mov{reg1},{reg2}")defdb(value):assembly_instructio......
  • 震惊,刷新我的认知,医疗信息数据库sqlserver中计算年龄的sql函数写了200行...
    创作不易只因热爱!!热衷分享,一起成长!“你的鼓励就是我努力付出的动力”sqlserver中年龄计算,HIS系统中年龄计算函数呈现的结果要求:1周岁内显示"几月几天",1周岁以上显示"几岁"CREATEFUNCTIONdbo.FUN_GETBRNL( @birthvarchar(24),--生日 @now......
  • 【深海王国】小学生都能玩的单片机!番外1:Arduino家族Uno-Mega-Nano-Pro Mini-ATtiny85
    Hi٩(๑^o^๑)۶,各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦(o゜▽゜)o☆今天大都督继续为大家带来单片机的番外系列——小学生都能玩的单片机!番外1带你快速学习认识Arduino家族:Uno、Mega、Nano、ProMini、ATtiny85,了解它们的使用场景与优......
  • 脑科学基础--课程论文 --探索大脑的奥秘:认知功能与神经机制
    探索大脑的奥秘:认知功能与神经机制[摘要]本研究旨在深入探索大脑在执行工作记忆和注意力控制任务时的认知功能与神经机制。随着神经成像技术的发展,我们对大脑的认识已经达到了前所未有的深度,但大脑如何在不同情境下灵活调整其活动以适应复杂多变的环境,仍然是一个未解之谜。本......
  • 递归示例-指定数字以内的所有排列组合(Base)
    指定数字以内的所有排列组合:定义名称版:=pmtB(指定数字)=LAMBDA(x,IF(x=1,1,VSTACK(pmtB(x-1),SUBSTITUTE(BASE(SEQUENCE(x^x)-1,x,x),0,x))))不定义名称版:=LET(fx,LAMBDA(npmtB,x,IF(x=1,1,VSTACK(npmtB(npmtB,x-1),SUBSTITUTE(BASE(SEQUENCE(x^x)-1,x,x),0,x)))),fx......