小球與盒子的問題

2022-09-04 21:30:13 字數 2371 閱讀 6909

這類問題的基本模型是:你有$n$個小球,$m$個盒子,現在想把這$n$個小球放進$m$個盒子中,問有多少種放的方法

但是只給出這樣的條件並不足夠,我們必須加上一些限制,否則結果是不確定的

一般加的有三個限制,即小球是否有區別、盒子是否有區別、允不允許有空盒子,也因此可以組合出八種不同的問題

接下來我們逐個討論這八種問題

一.小球有區別,盒子有區別,允許有空盒子

這是最簡單的,因為每個小球都有$m$種不同的放法,於是總共有$m^$種不同的放法

二.小球有區別,盒子有區別,不允許有空盒子

首先是初等的情況:如果$m>n$,那麼顯然是不可能放好的,方案數為0

那麼如果$m=n$,答案就是$n!$(注意不是$n!m!$,這是初學者常犯的錯誤,你不能讓這倆一起變化)

而對於$n>m$的情況,我們不妨構造乙個遞推式$f[n][m]$表示把$n$個不同小球放進$m$個不同盒子的方法,那麼當我們新增乙個小球的時候,我們可以有:

$f[n+1][m]=m*(f[n][m]+f[n][m-1])$,這個遞推式成立的原因是:當我們新增乙個小球的時候,面對$m$個盒子就有兩種可能,一種是原來這$m$個盒子都已經有球了,那麼這個小球隨便選個盒子放進去就行,另一種是原來只有$m-1$個盒子裡有球,這樣這個新來的球只能放在沒有球的那個盒子裡,但是由於盒子不同,沒有球的盒子可能是這$m$個盒子中任何乙個,因此也有$m$種可能

三.小球沒區別,盒子有區別,不允許有空盒子

這種情況等價於求方程$x_+...+x_=n$的所有正整數解的組數

實際上就是決定每個盒子裡要放幾個小球,那麼我們採用隔板法,把小球排成一行,這樣小球之間一共有$n-1$個空隙,然後在這$n-1$個空隙中選擇$m-1$個空隙放下隔板,這樣第$i$個隔板與第$i+1$個隔板之間就是要放進第$i+1$個盒子的小球,於是答案即為$c_^$

四.小球沒區別,盒子有區別,允許有空盒子

這種情況等價於求方程$x_+...+x_=n$的所有非負整數解的組數

這種情況也很容易,我們再拿$m$個小球過來,在每個盒子裡都放乙個,這樣問題就轉化成了你有$n+m$個小球,放進$m$個盒子裡,不允許有空盒子的上面三的情況,那麼答案即為$c_^$

但是如果換乙個角度,我們說允許有空盒子,那麼我們忽略所有空盒子剩下的盒子就是不空的(廢話),那麼我們假設有$i$個盒子非空,那麼放法就是$c_^$,而由於盒子不同,選出這$i$個不空的盒子的方法為$c_^$,於是答案即為$\sum_^c_^c_^$,那麼我們還可以獲得乙個組合恒等式:$\sum_^c_^c_^=c_^$

五.小球有區別,盒子沒區別,不允許有空盒子

這裡開始變得有些困難了,我們考慮遞推:設$f[n][m]$為此時的方案數,那麼有轉移$f[n+1][m]=mf[n][m]+f[n][m-1]$

這個遞推式的合理性在於,當我們新加乙個小球的時候有兩種可能的情況,一種是原來的$m$個盒子已經放滿了,那麼可以任選乙個盒子放進去,另一種是還有乙個空盒子,但是由於盒子沒區別,所以空的是哪個無所謂,故前者要乘$m$,後者不乘

記$s_(n,k)=f[n][k]$,這就是第二類斯特林數

第二類斯特林數$s(n,k)$表示將$n$個不同元素劃分為$k$個集合的方案數

遞推式:$s(n,k)=s(n-1,k-1)+ks(n-1,k)$

組合意義下的寫法:$s(n,k)=\frac\sum_^(-1)^c(k,i)(k-i)^$

這樣的話,考慮快速求斯特林數的方法:

展開後面的組合數:

$s(n,k)=\frac\sum_^(-1)^\frac(k-i)^$

然後扔到前面去:

$s(n,k)=\sum_^\frac}\frac}$

這就是卷積了嘛

性質:$m^=\sum_^c_^s(n,i)i!$

六.小球有區別,盒子沒區別,允許有空盒子

由於允許有空盒子,那麼我們忽略所有空盒子就是必須放滿的情況,那麼答案就是$\sum_^s_(n,i)$(即只放在乙個盒子~放在全部$m$個盒子的方案數之和)

七.小球沒區別,盒子沒區別,允許有空盒子

這實際上就是把$n$拆成$m$個非負數之和的方案數,一般將這個數記作$p_(n)$,但是這裡可以寫出乙個遞推$p[n+m][m]=p[n][m]+p[n+m][m-1]$,這個遞推的思想是分兩類討論,一類是沒有空盒子,那麼相當於是在$n$進行$m$拆分的基礎上每個數加上$1$,而如果有空盒子,那麼不妨在$m-1$個盒子的基礎上多放乙個空盒子就可以。

八.小球沒區別,盒子沒區別,不允許有空盒子

類似上面的處理,我們可以先在每個盒子裡放乙個球轉化成七的情況,這樣答案就是上面的$p[n-m][m]$

小球與盒子 的奇妙關係

小球盒子學得好,計數分數少不了。下面假設現在有 n 個球 m 個盒子。考慮乙個球有 m 種選擇方案,球之間的選擇互不影響,所以答案就是 m n 如果 n m 那麼顯然答案為 0 否則考慮第乙個球有 m 種放法,第二個有 m 1 種.所以答案就是 displaystyle prod i 如果 n,那麼...

盒子與小球系列題解

盒子與小球,noi 題庫的一系列題,可在noi題庫中提交。盒子與小球二 n個有差別的盒子 1 n 20 你有a個紅球和b個藍球。0 a 15,0 b 15。球除了顏色沒有任何區別。你可以將球放進盒子。乙個盒子可以同時放進兩種球,也可以只放一種,也可以空著。球不必全部放入盒子中。程式設計計算有多少種放...

盒子與小球之二

n個有差別的盒子 1 n 20 你有a個紅球和b個藍球。0 a 15,0 b 15。球除了顏色沒有任何區別。你可以將球放進盒子。乙個盒子可以同時放進兩種球,也可以只放一種,也可以空著。球不必全部放入盒子中。程式設計計算有多少種放置球的方法。就一行,n,a,b,用空格分開 就一行,輸出放置方案總數 2...