Processing math: 100%

MT【100】经典计数之分配问题

      注意:此讲适合联赛一试学生,以及参加清华北大等名校的自主招生的学生.

       经典计数之分配问题:把n个球放进k个盒子。考虑分配方法有三类:1.无限制 2.每个盒子至多一个(f 单的)3.每个盒子至少一个(f 满的).球和盒子都只考虑两种极端情况:全同或全不同。这样一共会有3*2*2=12种分配情况,如下:

image

证明:

1.略 

2.此时只考虑kn这种有意义情况,由分步计数原理易得(k)n=k(k1)(kn+1)

3.此时只考虑nk这种有意义情况,第一步将n球分成k部分有S(n,k)种方法,第二步

   分好的k部分球放到k个不同的盒子里有k!种排法.所以完成这件事情一共有k!S(n,k)种方法.

   这里S(n,k)定义如下:

image

image

image

image

image

   image


image

4.方程x1+x2++xk=n的非负整数解.

5.此时只考虑kn这种有意义情况,由于“f单”意味着每个盒子里至多放一个球,只需

    k个盒子里取n个,然后取出的盒子各放一个球。

6.方程x1+x2++xk=n的正整数解.

7.n元集至多分成k部分.

8.定义

9.n元集的k部分拆数为第二类stirlingS(n,k)

10.正整数n至多分成k个部分。这里分拆数p(n,k)定义如下:

11

注意:这里说的分拆是不计较各部的次序的,比如4的分拆为2,1,1一种。但4的有序分拆有三个(2,1,1);(1,2,1);(1,1,2).一般而言有序分拆好处理.比如nk部有序分拆就是x1+x2++xk=n的正整数个数.


显然p(n,1)=p(n,n1)=p(n,n)=1;p(n,2)=[n2],当k>np(n,k)=0一般的p(n,k)没有简单的表示方法.

            image

image

注:(n1,n2,,nk)表示n1n2nk1

原则上所有p(n,k)可有递推式逐个求得,例如:

image


image

11.定义

12.只需考虑nk的情况,正整数nk部分拆p(n,k)

注:当然除了这12种情况外还有一些情况,比如盒子中有部分相同部分不同。但往往这样

       的情况的考察意义不大,因为很难期望会有一般的计数公式.



posted @   M.T  阅读(714)  评论(0编辑  收藏  举报
编辑推荐:
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
阅读排行:
· 后端思维之高并发处理方案
· 千万级大表的优化技巧
· 在 VS Code 中,一键安装 MCP Server!
· 想让你多爱自己一些的开源计时器
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
点击右上角即可分享
微信分享提示