首页 > 其他分享 >十二重计数法

十二重计数法

时间:2024-05-24 17:43:34浏览次数:18  
标签:十二重 盒子 每个 区分 互相 计数法 答案 之间

\(n\) 个球,\(m\) 个盒子,求在一定限制条件下把小球放入盒子的方案数。

1. 球之间互相区分,盒子之间互相区分。

每个球能放 \(m\) 个盒子,显然是:

\[m^n \]

2. 球之间互相区分,盒子之间互相区分,每个盒子至多放一个球。

先选出装了球的盒子,然后排列球的顺序。
答案为:

\[\binom{m}{n} n! = m^{\underline{n}} \]

3. 球之间互相区分,盒子之间互相区分,每个盒子至少放一个球。

容斥,答案为:

\[\sum_{i = 0}^n (-1)^i \binom{m}{i} (m - i)^n \]

4. 球之间不互相区分,盒子之间互相区分。

插板,答案为:

\[\binom{n + m - 1}{m - 1} \]

5. 球之间不互相区分,盒子之间互相区分,每个盒子至多放一个球。

答案为:

\[\binom{m}{n} \]

6. 球之间不互相区分,盒子之间互相区分,每个盒子至少放一个球。

可以先每个盒子都放一个,然后就变成了 4.。
答案为:

\[\binom{n - 1}{m - 1} \]

7. 球之间互相区分,盒子之间不互相区分。

发现每个盒子只由它装了哪些球来区分,没有装球的盒子是没有区别的。
所以可以先枚举装了球的盒子数,答案就是斯特林子集数的行前缀和:

\[\sum_{i = 1}^m \begin{Bmatrix} n \\ i \end{Bmatrix} \]

8. 球之间互相区分,盒子之间不互相区分,每个盒子至多放一个球。

显然答案为:

\[[n \le m] \]

9. 球之间互相区分,盒子之间不互相区分,每个盒子至少放一个球。

斯特林子集数,答案为:

\[\begin{Bmatrix} n \\ m \end{Bmatrix} \]

10. 球之间不互相区分,盒子之间不互相区分。

分拆数。

转置一下,问题就从 有 \(m\) 个盒子,每个盒子中放任意个球 变成了 有任意个非空盒子,每个盒子可以放至多 \(m\) 个球。
所以答案为:

\[[z^n] \prod_{i = 1}^m \dfrac{1}{1 - z^i} \]

可以通过先 \(\ln\) 再 \(\exp\) 的方式快速求出。

11. 球之间不互相区分,盒子之间不互相区分,每个盒子至多放一个球。

答案为:

\[[n \le m] \]

12. 球之间不互相区分,盒子之间不互相区分,每个盒子至少放一个球。

每个盒子先放一个球后就变成了 10.。
答案为:

\[[z^{n - m}] \prod_{i = 1}^m \dfrac{1}{1 - z^i} \]

标签:十二重,盒子,每个,区分,互相,计数法,答案,之间
From: https://www.cnblogs.com/definieren/p/18211289

相关文章

  • CSP历年复赛题-P1061 [NOIP2006 普及组] Jam 的计数法
    原题链接:https://www.luogu.com.cn/problem/P1061题意解读:从编号s~t的字母从挑w个,组成一种特殊的数字,数字里字母都是升序的,给定初始数字,要计算后5个。解题思路:1、模拟法模拟样例:2105有效字母范围:b,c,d,e,f,g,h,i,j 初始值:bdfij要计算bdfij的下一个,采取如下步骤......
  • R语言中如何将科学计数法转换为数值型
     001、测试a<-c("1.23e-2","7.56207e-05","6.86470e-05")as.numeric(a)##直接转换为数值类型,然而并不起作用 02、增加参数options(scipen=100)##小数点后100位不适用科学计数法b<-c("1.23e-2","7.56207e-05","......
  • Java BigDecimal出现科学计数法
    JavaBigDecimal出现科学计数法查看BigDecimal的toString()源码,可以发现出现toString()出现科学计数法的原因 privateStringlayoutChars(booleansci){...intcoeffLen=coeff.length-offset;longadjusted=-(long)scale+(coeffLen-1);......
  • C#double类型转换成科学计数法类型(全网最全最好回答)
     doubledoubleData=heatData.MaxSampleValue.ToString("0.0000E+0"); 众所周知G7的转换是有精度限制的,所以:doublevalue1=1234.56789;doublevalue2=0.000123456789;doublevalue3=12345678901234567890.123456789;stringf......
  • CMC-Oracle科学计数法转换控制小数显示位数
    当使用oracle进行数据计算时,当数据过小会出现科学计数法,例如:4.13693246457752E-6这个时候可以使用to_char函数进行数字位数控制SELECTTO_CHAR(number,'fmt')FROMDUAL; selecta.arrivalavgratearrivalavgrate1,to_char(a.arrivalavgrate,'FM9999990.00999......
  • java中禁用科学计数法的处理
    importjava.text.DecimalFormat;publicclassDisableScientificNotationExample{publicstaticvoidmain(String[]args){doublenumber=123456789.123456789;//创建DecimalFormat对象,设置输出格式DecimalFormatdecimalFormat=newD......
  • P5824 十二重计数法
    洛谷题面传送门solution有\(n\)个球和\(m\)个盒子。case1球不同,盒不同答案为\(m^n\)case2球不同,盒不同,一个盒子内至多一个球若\(n>m\)显然答案为0否则,第一个球有\(m\)种放法,第二个有\(m-1\)种。以此类推,答案为\(\dfrac{m!}{(m-n)!}\)case3球不同,盒不同......
  • 对象转JSON 遇到的BigDecimal 科学计数法的问题,json转化字段单独处理
    问题描述:项目需要发送JSON数据,BigDecimal转成json仍然显示科学计数法,如果使用BigDecimai的toPlainString()需要将数据格式转为String,所以找了一下fastjson的自定义序列化内容,记录一下,以免以后忘记解决方案:方案一:JSONObject.toJSONString(vo,SerializerFeature.WriteBigDecimalA......
  • 深入学习 JVM 算法 - 引用计数法
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌......
  • SpringBoot - jackson 序列化配置,支持jdk8 时间类型和解决科学计数法
    jdk8时间序列化配置#Copy@ConfigurationpublicclassJacksonConfig{@BeanpublicObjectMapperserializingObjectMapper(){JavaTimeModulejavaTimeModule=newJavaTimeModule();/**序列化配置,针对java8时间**/javaTimeModule.add......