数学排列组合

news2024/11/15 11:07:27

        我突然想发一篇文章(别问我为什么[doge])

        排列组合大家都听过吧,今天的主角就是排列组合。

        废话不多说,直接开始

        先来看几道题目:

        T_1:由1,2,3,4组成不同的三位数有几种?

        T_2:有四个人,每两个人都要握手一次,要握几次手?

                排列组合公式部分

                排列部分

        第一道是排列问题,其实是想让你求1234四个数中选三个进行排列,有几种排列?

                题目解答

        我们先来思考一下第一个数字选什么,有几种可能?显然,第一位有4种可能,因为四个数字都没有被选过且都可以选择。

        第二位有\left ( 4-1 \right )种可能,因为第一位选了一个数字,所以只有3种可能。

        第三位有\left ( \left ( 4-1 \right )-1 \right )种可能,第一和第二位选了两个数字之后只剩下了2个数字。

        总共有\left ( 4*3*2 \right )种可能。

        至此,整道题目就做完了。

                推出排列公式

        我们不妨推想一下:排列又没有公式呢?如果有,那是什么呢?

        如果是从n个选项里选择m个进行排列,一般情况下第一位有n种可能性,第二位有m种可能性,直到第m位有\left ( n-m+1 \right )种可能性。总共有n\left ( n -1\right )\left ( n -2\right )...(n-m+1)种可能性

我们把这个公式进行化简,先把它写成\frac{n\left ( n-1 \right )\left ( n-2 \right )...\left ( n-m+1 \right )\left ( n-m \right )\left ( n-m-1 \right )\left ( n-m- 2\right )...*1}{\left ( n-m \right )\left ( n-m-1 \right )...*1}的形式,

可以发现,分子是n的阶乘,分母是\left ( n-m \right )的阶乘,所以这个式子可以变为  {A_{n}}^{m} = \frac{n!}{\left ( n-m \right )!}

其中,{A_{n}}^{m}代表的是从n个数字中选择n个进行排列的总数。

所以第一道题的答案就出来了:

     Q_{1}:   {A_{4}}^{3} = \frac{4!}{\left ( 4-3 \right )!} = \frac{24}{1} = 24

        组合部分

        第二道是组合问题,其实是想让你求四个人中选两个进行组合,有几种组合?

        题目解答&推出公式

 我们来想一下,排列和组合的区别是什么?其实排列注重顺序,而组合不管顺序。

观察可以发现排列数是组合数的两倍

为什么呢?

实际上,如果有n个数,抽出m个进行组合,组合数   *   m个数的排列方案数 = 排列数

比如4个数抽3个,则{A_{4}}^{3} = {C_{4}}^{3} *{A_{3}}^{3}

其中{C_{4}}^{3}代表的是从n个数字中选择n个进行组合的总数。

原理:排列有多种方案,其中的一些方案是重复的,而组合中这些方案就变成一种方案了

那如何知道重叠的数量呢?推算呗!

呜呜呜,手都要废了

推算可得出,在n个数选m个数中,组合数*m!=排列数

再联系排列的公式{A_{n}}^{m} = \frac{n!}{\left ( n-m \right )!}可以算出{C_{n}}^{m} = \frac{​{A_{n}}^{m}}{m!} = \frac{\frac{n!}{\left ( n-m \right )!}}{m!} =\frac{n!}{n!\left ( n-m \right )!}

最终的公式为{C_{n}}^{m} = \frac{n!}{m!\left ( n-m \right )!}

        排列组合技巧部分

技巧一:整体捆绑法

        我们来思考这样一道题:n名同学站成一排,m名同学要站在一起,有几种排列?   

        这就要用到整体捆绑法了。m名同学要站在一起,则可以将其变成一个人,有{A_{\left ( n-m+1 \right )}}^{\left ( n-m+1 \right )}种排列。但是,这m名同学的顺序也是会变的,所以要乘上{A_{m}}^{m}

公式就是{A_{\left ( n-m+1 \right )}}^{\left ( n-m+1 \right )}*{A_{m}}^{m}

技巧二:选空插入法

        还是来思考一道题:n名同学站在一起,其中m名同学不站在一起,有几种排列?

        面对与上一题截然不同的题目要如何解决呢?这就要用到选空插入法了。

        我们将其他的人先排序,就是{A_{\left( n-m\right )}}^{\left(n-m\right)},而其余的人呢?这就要用一种巧妙的思路了,

如下,设有七个人,其中两个人不站在一起,则将其余五个人的排列一下,再将那两个人插入空隙中,有\left ( 5+1 \right )个空位,所以那两个人的所有排列就是{A_{\left ( 5+1 \right )}}^{\left(2 \right )},推导成通用公式是{A_{\left ( n-m \right )}}^{\left ( n-m \right )}*{A_{\left(n-m+1\right)}}^{m}

      技巧三:总体排除法

        一道题:n名同学中选m人,其中k人中至少有一人被选上,有几种组合?

        这道题的方法讲的通俗一点就是排除法,先算出一共的方案数{C_{n}}^{m}

        再减去没有含有这k人的组合数{C_{\left ( n-k \right )}}^{m}

        公式就是{C_{n}}^{m}-{C_{\left ( n-k \right )}}^{m}

        技巧四:优先考虑法

        题目:n名队员中有m名主力队员,派k名队员参加比赛,有几种较好的排列(默认m<k)

        由于是要较好的排列,所以先算m名主力的排列{A_{m}}^{m},再算剩下的人的排列数{A_{\left ( n-k \right )}}^{\left ( m-k \right )}

        最后相乘得出公式为{A_{m}}^{m}*{A_{\left ( n-k \right )}}^{\left ( m-k \right )}

        技巧五:分类讨论法

        由0,1,2,3,4,5组成没有重复数字的六位数,其中个位数字小于十位数字的共有几种排列?

        这题用排除法也可以做,这里为了展示分类讨论的方法,就用分类讨论了。已知要个位小于十位,所以个位只有01234五种选择

        再给它分类讨论:个位是0有{A_{5}}^{5}种排列;个位是1有4*{A_{4}}^{3}种排列;个位是2有3*{A_{4}}^{3}种排列;个位是3有2*{A_{4}}^{3}种排列;个位是4有{A_{4}}^{3}种排列。

        合起来就是有\left(1+2+3+4+5\right)*\frac{4!}{1}种排列

        答案是360种。

        技巧六:先选后排法

        有n种菜选m种,种在m块土地上,有几种排列?

        这道题比较简单,先算n中选m的组合数,再进行排列。

        直接给答案:{C_{n}}^{m}*{A_{m}}^{m}

        技巧七:挡板分隔法

        这个技巧比较难,先看题目:把n本书发给1.2.3~~~n号阅览室,每个阅览室分得的书不得小于其编号,有几种分配方法?

        一般先看会感到很懵逼,但是看一下这张图片就明白了:

        

先设有13本书。向每个阅览室放入编号-1本书,之后还剩7本书,然后就可以用挡板分隔法了:

可以看到剩下的7本书中间有6个地方可以插入隔板,而隔板有3个便可以把这些书分为4部分,所以排列数有{A_{6}}^{3},尝试推广到原先的题目:设s = \frac{n^{2}-n}{2},则有{C_{(n-s-1)}}^{(n-1)}种排列。

其他:

在下面

彩蛋!!!

排列组合练习题及答案 - 百度文库 (baidu.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【秋招笔试】8.24美团秋招(算法岗)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

[JAVA] 什么是Java线程同步机制?

在单线程程序中&#xff0c;每次只能做一件事情&#xff0c;后面的事情需要等待前面的事情完成后才可以进行&#xff0c;如果使用多线程程序&#xff0c;就会发生两个线程抢占资源的问题&#xff0c;所以在多线程编程中&#xff0c;需要防止这些资源访问的冲突&#xff0c;Java…

LED显示屏原理及其系统组成

随着城市化进程的加快&#xff0c;LED显示屏的需求在各个行业中迅速增长。无论是用于广告宣传、信息发布&#xff0c;还是场馆显示&#xff0c;LED显示屏都扮演着重要的角色。然而&#xff0c;对于很多人来说&#xff0c;LED显示屏的工作原理及其系统组成可能并不为熟知。本文将…

589. N 叉树的前序遍历(递归法)

目录 一&#xff1a;题目&#xff1a; 二&#xff1a;代码&#xff1a; 三&#xff1a;结果&#xff1a; 一&#xff1a;题目&#xff1a; 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示&#xff0c;每…

Java JNA调用C函数常见问题及解决方法

目录 1 undefined symbol&#xff1a;xxx2 Java映射C数组乱码3 Java使用String接收不到C函数返回的char*4 Unable to load DLL xxx.dll5 java.lang.UnsatisfiedLinkError: %1 不是有效的 Win32 应用程序6 无效的ELF头7 Structure array elements must use contiguous memory8 j…

备考计算机二级Python之Day4下篇

实例解析--猜数字游戏 编写一个“猜数字游戏”的程序&#xff0c;在1~1000之间随机产生一个数&#xff0c;然后请用户循环猜这个数字&#xff0c;对于每个答案只回答“猜大了”或“猜小了”&#xff0c;直到猜对为止。输出用户的猜测次数。 使用Python语言的随机标准库random…

开源游戏开发引擎LayaAir

LayaAir是一款由Layabox公司推出的次世代全平台3D引擎&#xff0c;它支持2D、3D、VR与AR产品的开发&#xff0c;并允许开发者一次开发后同时发布为Web、小游戏、Native APP等多种平台的产品。 LayaAir引擎提供强大的IDE集成环境&#xff0c;包含3D场景编辑器、材质编辑器、粒子…

【linux中高级命令】

杀进程 1、lsof列出所有打开的文件&#xff0c;‌包括网络连接&#xff0c;‌从而提供关于系统状态的宝贵信息‌ #可以直接查看端口的进程 lsof -i:端口获取到进程&#xff0c;使用kill命令和PID来终止进程 kill -9 [PID]2、列出使用该端口的进程信息&#xff0c;‌包括PID …

linux上datax 安装以及使用

前言 DataX 是一款由阿里巴巴开源的数据同步工具&#xff0c;旨在帮助用户实现不同数据源之间的高效数据迁移和同步。无论是从传统的关系型数据库、NoSQL 数据库&#xff0c;还是到大数据存储系统&#xff0c;DataX 都能够轻松应对各种数据同步需求。通过简单的配置和灵活的插…

【解压即玩】最终幻想7 重制版中文+预购特典+全DLC,难忘的一作

数年前&#xff0c;一家名为神罗的公司&#xff08;起初称为神罗工程所&#xff09;发现了一种深埋于地底的神秘生物遗骸&#xff08;被称为杰诺瓦&#xff09;以及一种名为“魔晄”的能源。这家公司通过将这种生物遗骸浸泡在魔晄中来生产电力&#xff0c;从而迅速崛起成为全球…

一套在线工具管理服务器+DB+Redis+Mongo等

Team IDE是一个基于Web的、集成了多种开发工具和服务&#xff08;MySql、Oracle、金仓、达梦、神通等数据库、SSH、FTP、Redis、Zookeeper、Kafka、Elasticsearch、Mongodb&#xff09;的一体化开发环境&#xff0c;它不仅为开发者提供了便捷的开发体验&#xff0c;还支持团队协…

【文本 >>> 语音】⭐️SpringBoot 结合 jacob 简单实现一个文本朗读功能

目录 &#x1f378;前言 &#x1f37b;一、环境准备 &#x1f37a;二、依赖引入 &#x1f49e;️三、简单启动 &#x1f379;四、接口改造 4.1 封装为一个工具类 4.2 暴露一个接口 4.3 测试 &#x1f331;五、扩展 &#x1f378;前言 小伙伴们大家好&#xff0c;上次…

初学Python如何快速入门(内附详细攻略),一文讲清

目前python可以说是一门非常火爆的编程语言&#xff0c;应用范围也非常的广泛&#xff0c;工资也挺高&#xff0c;未来发展也极好。 Python究竟应该怎么学呢&#xff0c;我自己最初也是从零基础开始学习Python的&#xff0c;给大家分享Python的学习思路和方法。一味的买书看书…

AI指挥细胞大变身,脑瘤生存率跃升75%?

“ 胶质母细胞瘤&#xff08;GBM&#xff09;&#xff0c;一种凶险的脑癌&#xff0c;曾让无数家庭陷入绝望。然而南加州大学凯克医学院的一项突破性研究&#xff0c;利用AI技术将脑癌细胞转化为免疫细胞&#xff0c;为GBM患者带来了前所未有的生存希望。 ” AI识别与重编程…

Windows系统注册表

一、修改文件图标 电脑程序怎么更换python文件的图标_mob64ca12d12b68的技术博客_51CTO博客 二、 1.打开注册的命令&#xff1a; 按winR快捷键&#xff0c;在弹出的窗口中输入&#xff1a;regedit 2.注册表样式 已学习至&#xff1a;0&#xff1a;47&#xff1a;32 课堂链…

OpenAI Sora:视频生成领域的创新力量

一、Sora 的诞生与技术原理 Sora 模型由 OpenAI 推出&#xff0c;其诞生背景与人工智能技术在多模态领域的不断探索和发展紧密相关。在视频数据日益丰富和重要的时代&#xff0c;对视频生成模型的需求愈发迫切&#xff0c;Sora 应运而生。 Sora 独特的技术原理使其在众多模型…

验证码短信怎么实现Java接口对接

在当今数字化时代&#xff0c;商家和企业对于用户身份验证的需求日益增强&#xff0c;这不仅是出于保护用户数据安稳的考虑&#xff0c;也是维护业务正常运营、防止欺诈行为的重要一环。在众多身份验证手段中&#xff0c;文字验证码短信因其便捷性和低成本特性&#xff0c;成为…

面向对象03:创建对象内存分析

本节内容视频链接&#xff1a;面向对象06&#xff1a;创建对象内存分析_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p65&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 创建对象时的内存分析涉及到理解对象如何在内存中分配和管理。‌这个过程在…

Python酷库之旅-第三方库Pandas(096)

目录 一、用法精讲 411、pandas.DataFrame.values属性 411-1、语法 411-2、参数 411-3、功能 411-4、返回值 411-5、说明 411-6、用法 411-6-1、数据准备 411-6-2、代码示例 411-6-3、结果输出 412、pandas.DataFrame.axes属性 412-1、语法 412-2、参数 412-3、…