小球盒子模型
-
相同的球(n),相同的盒子(m),允许一部分为空,求方案数。
首先这个是有递推的式子的。考虑两种情况,第一种是先给每一个盒子装一个苹果先,第二种是有一个盘子不装苹果。=。特别的,我们有:j>i的时候,。边界条件是,i=0或者j=1的时候,。
for(int i=0;i<=N;++i){ for(int j=1;j<=M;++j){ if(j==1||i==0)f[i][j]=1; else if(j>i) f[i][j]=f[i][i]; else f[i][j]=(f[i-j][j]+f[i][j-1])%MOD; } }
-
相同球,相同的盒子,不允许为空,求方案数。
先每一个盒子放一个,然后就转化成上一个问题了。即,答案不为0时,答案是。
-
球相同,盒子不同。不允许空,求方案数。
其实这个说到底就是一个插板的问题。答案就是C(n-1,m-1)。
-
球相同,盒子不同,允许空,求方案数。
这个其实可以看做是多放了m个球之后,非空的情况。C(n-1+m,m-1)。
-
球不同,盒子相同。不允许空,求方案数。
这就是第二类Stirling数的定义,下面给出其递推的求法。
S[0][0]=1; for(int i=1;i<=5000;++i){ for(int j=1;j<=i;++j)S[i][j]=(1ll*S[i-1][j-1]+1ll*j*S[i-1][j])%MOD; }
-
球不同,盒子相同。允许空,求方案数。
枚举一下空几个盒子就行了。。这个式子在组合数学中还有一个名字叫bell数。
-
球不同,盒子不同,不允许空,求方案数。
就是球不同盒子相同再乘上一个。
-
球不同,盒子不同,允许空,求方案数。
最简单的来了,答案是:。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~