【数论基础】—— 隔板法

2023-10-27

隔板法

问题

  1. n n n相同的小球,放到 m m m不同的盒子里,盒子不能为空的方案数
  2. n n n相同的小球,放到 m m m不同的盒子里,盒子可以为空的方案数

解决

问题 1 1 1

我们考虑下面这种做法:

因为每个小球是相同的,所以我们不需要一个一个去考虑他们具体安排,我们只需要从左往右依次将他们分成 m m m 块,这样就放进了 m m m 个盒子里。
m m m 个块(盒子)意味着我们需要划分 m − 1 m-1 m1 次(我们形象化的把这个划分的过程想象成放入一个个的隔板,因此叫做隔板法)。

n n n 个小球有 n − 1 n-1 n1 个空隙,因为不能为空,因此不能有两个隔板放在同一个空隙。
所以我们要在 n − 1 n-1 n1 个空隙中选出 m − 1 m-1 m1 个,方案数 ( n − 1 m − 1 ) \begin{pmatrix}n-1\\m-1\end{pmatrix} (n1m1)

问题 2 2 2

我们不妨按照问题 1 1 1 的做法继续思考。

但是如果可以为空,那么每个空隙中就可能回放多个小球,这怎么办呢?

其实我们不妨将这个问题转换为问题 1 1 1, 如果我们先人为的给每个格子一个小球,那么这个问题不就和问题 1 1 1 相同了吗?

因此,我们现在有 n + m n+m n+m 个小球, n + m − 1 n+m-1 n+m1 个空隙, m − 1 m-1 m1个隔板。
n + m − 1 n+m-1 n+m1 个空隙种选出 m − 1 m-1 m1 个的方案数 ( n + m − 1 m − 1 ) \begin{pmatrix}n+m-1\\m-1\end{pmatrix} (n+m1m1)

拓展

那么两个问题又和那些问题等价呢?

x 1 + x 2 + x 3 + . . . x m = n x_1+x_2+x_3+...x_m=n x1+x2+x3+...xm=n 的正整数解(或非负整数解)有多少组?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【数论基础】—— 隔板法 的相关文章

  • mysql快速导入sql文件_MySQL高效导入多个.sql文件方法详解

    MySQL有多种方法导入多个 sql文件 里面是sql语句 常用的有两个命令 mysql和source 但是这两个命令的导入效率差别很大 具体请看最后的比较 还有sqlimport和LOAD DATA INFILE等导入方法 不过它们主要用
  • FreeRTOS学习---“信号量”篇

    总目录 FreeRTOS学习 任务 篇 FreeRTOS学习 消息队列 篇 FreeRTOS学习 信号量 篇 FreeRTOS学习 事件组 篇 FreeRTOS学习 定时器 篇 在 消息队列 篇中 我们曾经埋下一个伏笔 就是说 FreeRT

随机推荐

  • CMSIS-RTOS 信号量

    信号量Semaphores 和信号类似 信号量也是一种同步多个线程的方式 简单来讲 信号量就是装有一些令牌的容器 当一个线程在执行过程中 就可能遇到一个系统调用来获取信号量令牌 如果这个信号量包含多个令牌 线程就会继续执行 同时信号量令牌的
  • 使用 sklearn 进行数学建模的通用模板

    前言 无论是本科和研究生都会有的数学建模含金量还是很高的 下面将介绍一下进行数学建模的一些基本操作方法 这里主要是利用sklearn 进行建模 包括前期的一些数据预处理以及一些常用的机器学习模型以及一些简单粗暴的通用建模步骤 仅代表我自己意
  • 用背景渐变的透明度设置不同颜色的背景渐变

    项目最近这几天正在做不同主题的颜色配置方案 要根据用户输入的颜色来配置整个主题的颜色 让人头疼的是 其中一个主题所有的列表头部背景色都是2到3组渐变值的线性渐变 也就是说 要根据用户输入的颜色值生成不同的但相似度很近的渐变颜色 我上网查了些
  • mysql中explain用法和结果的含义

    explain select from user explain extended select from user id SELECT识别符 这是SELECT的查询序列号 select type SELECT类型 可以为以下任何一种 SI
  • 【ML】使DBSCAN 变得简单 & 如何使用 Scikit-Learn 进行 Python 教程

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • [架构之路-180]-《软考-系统分析师》-19- 系统可靠性分析与设计 -2- 容错最重要的技术手段:冗余技术

    目录 1 9 3 冗余技术 19 3 1冗余技术的分类 1 结构冗余 硬件冗余 2 信息冗余 数据冗余 3 时间冗余 4 冗余附加 19 3 2 冗余系统与其工作原理 1 9 3 冗余技术 提高系统可靠性的技术可以分为避错 排错 技术和容错
  • ev3 c语言高级编程,EV3运行原生C语言程序实例

    EV3运行原生C语言程序实例 本帖最后由 ntwuhui 于 2013 9 20 07 58 编辑 说明 以下过程直接在EV3系统上编译原生C语言程序 不需要修改固件 Ununtu13 04测试通过 个人觉得此法应该也可以在其他Linux系
  • Python subprocess模块

    Python subprocess模块 从Python 2 4开始 Python引入subprocess模块来管理子进程 以取代一些旧模块的方法 如 os system os spawn os popen popen2 commands 不
  • 高并发解决方案

    解决高并发方案 背景 在今天 基于SOA的架构已经大行其道 伴随着架构的SOA化 相关联的服务熔断 降级 限流等思想 也在各种技术讲座中频繁出现 本文将结合Netflix开源的Hystrix框架 对这些思想做一个梳理 伴随着业务复杂性的提高
  • 【react】生命周期(旧)

    生命周期的三个阶段 初始化阶段 由ReactDOM render 触发 初次渲染 constructor 构造器 componentWillMount 组件将要挂载 render 初始化渲染和状态更新之后调用 调1 n次 component
  • WPF控件

    这个月 学习了WPF的控件 还有窗口的一些属性 但更多的控件的内容 控件是门面 控件有很多 日常工作中打交道最多的控件无外乎6类 布局控件 内容控件 带标题内容控件等 条目控件 带标题条目控件 学习控件之前 需要先了解UI元素 UI的功能是
  • JWT简单介绍

    目录 JWT 概述 token认证和session认证的区别 传统的session认证 基于session认证所显露的问题 基于token的鉴权机制 JWT 的主要应用场景 优点 JWT搭建 基于java 创建生成token的方法 验证to
  • chrony详解

    关于chrony chrony is a versatile implementation of the Network Time Protocol NTP It can synchronize the system clock with
  • 前端开发--快速了解Vue中的diff算法

    博学谷IT学习技术支持 目录 diff算法的概念 diff算法的三种比较方式 方式1 根元素变了 删除重建 方式2 根元素没变 属性改变 元素复用 更新属性 方式三 根元素没变 子元素没变 元素内容改变 无key 就地更新 有key 值为索
  • MySQL存储过程创建例子

    1 无参数输入的存储过程 DELIMITER DROP PROCEDURE IF EXISTS testUser CREATE PROCEDURE testUser BEGIN SELECT FROM user WHERE name zz
  • JUC-10. CompletableFuture

    想了解更多JUC的知识 JUC并发编程合集 10 CompletableFuture 1 Future接口 前言 1 1 概述 Future 接口在Java 5中被引入 设计初衷是对将来某个时刻会发生的结果进行建模 它建模了一种异步计算 返
  • 写公开信可别等被喷,才发现其实可以这样

    正文共 1022 字 阅读大约需要 4 分钟 公务员必备技巧 您将在4分钟后获得以下超能力 快速生成公开信 Beezy评级 B级 经过简单的寻找 大部分人能立刻掌握 主要节省时间 推荐人 Kim 编辑者 Linda 图片由Lexica 生成
  • Java8流式编程

    文章目录 流式编程 流 Stream Stream特点 Stream运行机制 迭代类型 外部迭代 内部迭代 二者区别 流的创建 数组创建 集合创建 值创建 函数创建 流的中间操作 distinct 去重 filter 过滤 sorted 排
  • LeetCode二叉树系列——236.二叉树的最近公共祖先

    一 题目描述 236 二叉树的最近公共祖先 给定一个二叉树 找到该树中两个指定节点的最近公共祖先 百度百科中最近公共祖先的定义为 对于有根树 T 的两个节点 p q 最近公共祖先表示为一个节点 x 满足 x 是 p q 的祖先且 x 的深度
  • 【数论基础】—— 隔板法

    隔板法 问题 n n n 个相同的小球 放到 m m m个不同的盒子里 盒子不能为空的方案数 n