首页 > 其他分享 >组合数的定义

组合数的定义

时间:2024-12-14 11:09:41浏览次数:5  
标签:排列 frac 定义 组合 元素 times 选取

组合数的定义

组合数表示从 $ n $ 个不同的元素中,选取 $ m $ 个元素的不同选择方式,不考虑顺序。记为 $ C(m, n) $ 或 $ \binom{n}{m} $。

数学定义为:

\[C(m, n) = \frac{n!}{m!(n-m)!} \]

其中:

  • $ n! $ 是 $ n $ 的阶乘,表示从 $ n $ 个元素中所有排列的总数;
  • $ m! $ 是 $ m $ 的阶乘,表示 $ m $ 个元素内部的排列方式;
  • $ (n-m)! $ 是剩余 $ n-m $ 个元素的阶乘。

组合数的理解

  1. 特点
    组合数不考虑选取的顺序。例如,从 $ {A, B, C} $ 中选取 2 个元素:

    • $ AB $ 和 $ BA $ 被视为同一种选择;
    • 组合数的值只依赖于选取的元素集合,而与排列顺序无关。
  2. 公式推导

    • 如果考虑顺序,从 $ n $ 个元素中选取 $ m $ 个元素后,排列的方式总共有:

      \[P(m, n) = \frac{n!}{(n-m)!} \]

    • 因为组合不考虑顺序,需要除以 $ m! $(即选出的 $ m $ 个元素内部的排列方式):

      \[C(m, n) = \frac{P(m, n)}{m!} = \frac{n!}{m!(n-m)!} \]


特殊情况

  1. 当 $ m = 0 $ 时:

    \[C(0, n) = 1 \]

    表示从 $ n $ 个元素中选取 0 个元素,只有一种情况(什么都不选)。

  2. 当 $ m = n $ 时:

    \[C(n, n) = 1 \]

    表示从 $ n $ 个元素中选取 $ n $ 个元素,只有一种情况(全部选中)。

  3. 当 $ m > n $ 时:

    \[C(m, n) = 0 \]

    因为无法从 $ n $ 个元素中选出多于 $ n $ 个的组合。


举例

例 1:从 5 个元素 $ {A, B, C, D, E} $ 中选 3 个元素

  1. 按公式计算:

    \[C(3, 5) = \frac{5!}{3!(5-3)!} = \frac{5 \times 4 \times 3}{3 \times 2 \times 1} = 10. \]

  2. 组合结果为:

    \[\{ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, BDE, CDE\}. \]

例 2:从 4 个元素 $ {A, B, C, D} $ 中选 2 个元素

  1. 按公式计算:

    \[C(2, 4) = \frac{4!}{2!(4-2)!} = \frac{4 \times 3}{2 \times 1} = 6. \]

  2. 组合结果为:

    \[\{AB, AC, AD, BC, BD, CD\}. \]


组合数的性质

  1. 对称性

    \[C(m, n) = C(n-m, n) \]

  2. 递推关系(杨辉三角)

    \[C(m, n) = C(m-1, n-1) + C(m, n-1) \]

  3. 总和公式

    \[\sum_{m=0}^n C(m, n) = 2^n \]


组合数与排列数的关系

排列数 $ P(m, n) $ 和组合数 $ C(m, n) $ 的关系为:

\[P(m, n) = C(m, n) \cdot m! \]

即排列数等于组合数乘以选出 $ m $ 个元素的排列方式数。

标签:排列,frac,定义,组合,元素,times,选取
From: https://www.cnblogs.com/LKJZYD20/p/18606478

相关文章

  • 排列数的定义
    排列数的定义:排列数是指从$n$个不同的元素中,选取$m$个元素并按照一定顺序排列的方式数,记为$P(m,n)$。数学定义为:\[P(m,n)=\frac{n!}{(n-m)!},\]其中:$n!$表示$n$的阶乘,即$n!=n\times(n-1)\times(n-2)\times\cdots\times1$。$(n-m)!$......
  • 为什么js里定义的数组可以不定长且数据类型可以不固定呢?
    JavaScript数组之所以可以不定长且数据类型不固定,是因为它底层实现的机制与传统静态类型语言(如C++或Java)中的数组不同。JavaScript数组本质上是对象,而不是像其他语言那样是连续内存空间的固定大小的结构。具体来说:不定长:JavaScript数组并没有预先分配固定的内存空间......
  • Vue3自定义组件实现图片预览下载
    示例代码ImgPreview.vue<template> <divclass="preview"@click="onClick"> <divclass="preview-img"> <divclass="opt-box"> <CloudDownloadOutlined:style="{fontSize:'44p......
  • 转载:【AI系统】自定义计算图 IR
    模型转换涉及对模型的结构和参数进行重新表示。在进行模型转换时,通常需要理解模型的计算图结构,并根据目标格式的要求对其进行调整和转换,可能包括添加、删除或修改节点、边等操作,以确保转换后的计算图能够正确地表示模型的计算流程。本文主要介绍自定义计算图的方法以及模型转换的......
  • SpringBoot - 自定义启动Banner(附:使用艺术字体)
    我们知道 SpringBoot 项目启动时会在控制台打印出一个 banner,下面演示如何定制这个 banner。1,修改banner文字 (1)首先在 resources 目录下创建一个 banner.txt 文件。2,使用艺术字体(1)如果想要将文本设置为类似默认 banner 那样的艺术字体,可以借助下面几个在线......
  • Windows Server 上使用 命令行 工具来实现 简单的同步功能、轻量级,并且能够定义 同步
    为了自动同步本地文件到文件服务器,且要求工具简单、轻量级,您可以选择以下几种常见工具,这些工具都能提供简单易用的界面和配置方式,帮助您定义同步目录和同步策略。WindowsServer上使用命令行工具来实现简单的同步功能、轻量级,并且能够定义同步目录和同步策略,我推荐以下几种......
  • Spring Security6 实现数据库自定义验证和jwt校验
    SpringSecurity6数据库自定义验证和jwt校验的简单实现以及个人解读版本springboot3.4.0mybatis-plus3.5.7jjwt0.12.6在使用jjwt的时候需要导入三个依赖分别是jjwt-api,jjwt-impl和jjwt-jackson,导入三个有点麻烦,所以可以直接导入jjwt依赖,这个依赖包含前面三个<depen......
  • 自定义资源支持:K8s Device Plugin 从原理到实现
    本文主要分析k8s中的device-plugin机制工作原理,并通过实现一个简单的device-plugin来加深理解。1.背景默认情况下,k8s中的Pod只能申请CPU和Memory这两种资源,就像下面这样:resources:requests:memory:"1024Mi"cpu:"100m"limits:memory:"2......
  • 数字组合转字母&删除二叉树节点&字符串相乘&打家劫舍ii&无序数组第k大 &无序数组前k大
    一、数字串转换为字符串1-26个数字分别代表26个字符(A-z)输入"12326〞就可以拆分为【1,2,3,2,6】、(12,3,2,6].[1,23,2,6]【1,23,26】、【12,3,26】等,将每种组合转成成对应字母输出,输出所有可能的结果返回所有可能的转换结果//将数字串转换成字母串//将数字串转换成字母......
  • 微信小程序中使用echarts 自定义图片时报错: Image is not defined
    最近需要在小程序中完成一个图表,其中需要导入一些自定义的图片来显示。使用echarts-for-weixin项目之后,发现报了如下错误:ReferenceError:Imageisnotdefined经查看源码发现,Echarts.Js文件中是使用NewImage来创建图片的,而小程序中应该使用Canvas.Createimage()因此需要修......