从n个不同元素中有放回的取出r个且不计顺序,有多少种不同的取法?
从n个不同元素中有放回的取出r个且不计顺序,有多少种不同的取法?
答案是:\(C_{n+r-1}^r\)
解析
因为是有放回地取出,所以同一个元素可能会被取多次,并且取出的元素是不计顺序的,那么如果我们设\(x_i\)为第\(i\)个元素被取出的次数,问题就被转化为:
x_1+x_2+\cdots +x_n=r\\
x_i\ge0,1\le i\le n
\end{aligned}
\]
求以上\((x_1,x_2,\dots,x_n)\)解的个数。
注意到\(x_i\ge 0\),这时对答案的求解仍然不是很直观。如果再进行一次转化:
\]
如果设\(y_i=x_i+1\),那么问题再一次转化:
y_1+y_2+\cdots +y_n=r+n\\
y_i>0,1\le i\le n
\end{aligned}
\]
求\((y_1,y_2,\dots,y_n)\)解的个数
注意到,\(y_i>0\)
此时问题相当于,有r+n个苹果摆成一行,我们用小棍子将它们分割为n个部分,每个部分必须有苹果。比如说用O代表苹果,|代表棍子,那么当\(n=4,r=1\)时,可能有以下分割方式:
\]
这时,棍子将苹果分为4个部分,分别为1,2,1,1,那么此时,\((1,2,1,1)\)就是\((y_1,y_2,y_3,y_4)\)的一组解
所以,n+r个苹果,有n+r-1个空隙,我们要将这一排苹果分为n个部分,那么需要n-1个棍子,也就是从n+r-1个空隙中选择n-1个去插棍子,此时方案数为\(C_{n+r-1}^{n-1}\),也就是\(C_{n+r-1}^r\)
从n个不同元素中有放回的取出r个且不计顺序,有多少种不同的取法?的更多相关文章
- n个元素的入栈顺序有多少种出栈顺序?
问题:w1.w2.w3.w4.w5,5个元素将会按顺序入栈,求出栈顺序有多少种情况. 先写一下结论方便记忆: 1个元素:1种 2个元素:2种 3个元素:5种 4个元素:14种 5个元素:42种 简单的 ...
- 【转】【数据结构】【有n个元素依次进栈,则出栈序列有多少种】
卡特兰数 大神解释:https://blog.csdn.net/akenseren/article/details/82149145 权侵删 原题 有一个容量足够大的栈,n个元素以一定的顺序 ...
- shell 中函数放回字符串问题
shell 中函数放回字符串问题 shell 中不可以直接 return 字符串 ,可以return 数字.如果要return 字符串 改为 echo "hello world" ...
- 同过增强Connection类[重写了close的方法]实现的从连接池取出连接并放回连接的简单的实现流程
package tk.dong.connection.util; import java.io.IOException;import java.io.InputStream;import java.i ...
- 在n个球中,任意取出m个(不放回),求共有多少种取法
要求: 在n个球中,任意取出m个(不放回),求共有多少种取法 分析: 假设3个球A,B,C,任意取出2个,可分为取出的球中含A的部分和不含A的部分.即AB,AC为一组,BC为一组. 设函数F(n,m) ...
- RabbitMq消息手动应答、放回队列重新消费、设置队列消息持久化、分发模式
RabbitMq消息手动应答,放回队列重新消费,设置队列消息持久化 消息应答 概念 消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况. ...
- PHP的排列组合问题 分别从每一个集合中取出一个元素进行组合,问有多少种组合?
首先说明这是一个数学的排列组合问题C(m,n) = m!/(n!*(m-n)!) 比如:有集合('粉色','红色','蓝色','黑色'),('38码','39码','40码'),('大号','中号') ...
- 基于JQuery实现表单元素值的回写
form.jsp: <%@ page language="java" import="java.util.*" pageEncoding="GB ...
- 中国天气网放回json的解释
本文是出自David_Tang的,原文http://www.cnblogs.com/mchina/archive/2013/07/12/3170551.html {"weatherinfo& ...
- 通信协议之广播---recvfrom 放回客户端的ip地址第一次全为0.0.0.0
遇到一个很恶心的问题. while(1) { recvfrom(sockfd, readbuff, UDP_CMD_BUFF_LENGTH - 1, 0, (struct sockaddr *)&am ...
随机推荐
- Promise合集
Promise.all Promise.all 可以将多个 Promise 实例包装成一个新的 Promise 实例.所有的 Promise 对象都成功时返回的是一个结果数组,一旦有任何一个 Prom ...
- CTF-RE-学习记录-汇编-2
汇编工具DTDebug 下载后设置好odd与插件路径,同时在属性中设置为管理员身份运行(无Administrator权限进入的时候一直在提示) 寄存器 存储数据: CPU>内存>硬盘 32 ...
- 第三章3.3 selenium基础
seleniumIDE:是一款可以实现录制回放的操作:存在可视化窗口进行录制回放操作:它属于firefox(chrome)浏览器的插件;安装方式:两种 : 1.下载安装包离线安装2.在线安装 注意:不 ...
- 利用NGINX搭建部署直播流媒体服务器
直播如今是一个老生常谈的问题,怎么用于直播,大多数人只晓得,大佬某平台直播软件,点击开始即可直播.那么如何来搭建一个简易的直播平台呢?仅仅是有直播功能,没有涉及转码以及播放软件. 安装nginx以及r ...
- android studio 做登陆界面
先来一个最简单的 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> &l ...
- mysql 清空数据表id 重1开始 帝国cms清空数据表id 重1开始
alter table phome_ecms_news auto_increment=1; alter table phome_ecms_news_check auto_increment=1; al ...
- ShardingJDBC配置
Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务. 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容J ...
- 关于在visual Studio 2022中无法找到 ASP.NET Core Web Application 或 ASP.NET Core Web 应用程序
在学习 ASP.NET Core Web Application 时 发现无论如何都无法找到这个模板,在翻遍论坛后都没有看到解决的方法,在我下载 visual Studio 2017 中终于找到了 但 ...
- 这可能是最全面的MySQL面试八股文了
什么是MySQL MySQL是一个关系型数据库,它采用表的形式来存储数据.你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列).行代表每一行数据,列代表该行中的每个值.列上的值是 ...
- Appweb-6.1.1 移植到ARM
Appweb-6.1.1 移植到ARM 编译环境:ubuntu-12.04 x64 开发平台:Hi3535 arm版 编译版本:appweb-6.1.1.zip ESP下载地址=> ESP we ...