關於盒子與球的問題

2022-03-06 13:38:01 字數 2248 閱讀 8525

故事發生在某一天的下午,

我如同往常一樣開啟題目...... 然後成功被一堆相同的不同的盒子和球繞暈惹( t﹏t )

為了防止自己再次忘記我覺得還是有必要記錄一下哈哈哈哈

1 給定 n 個不同的球,放進 m 個不同的盒子,盒子允許為空,有多少種方案?

2 給定 n 個不同的球,放進 m 個不同的盒子,盒子不允許為空,有多少種方案?

3 給定 n 個不同的球,放進 m 個相同的盒子,盒子允許為空,有多少種方案?

4 給定 n 個不同的球,放進 m 個相同的盒子,盒子不允許為空,有多少種方案?

5 給定 n 個相同的球,放進 m 個不同的盒子,盒子允許為空,有多少種方案?

6 給定 n 個相同的球,放進 m 個不同的盒子,盒子不允許為空,有多少種方案?

7 給定 n 個相同的球,放進 m 個相同的盒子,盒子允許為空,有多少種方案?

8 給定 n 個相同的球,放進 m 個相同的盒子,盒子不允許為空,有多少種方案?

對於任意乙個球, 均有放入\(1-m\) 一共\(m\)種方案 因此方案數為 \(m^n\)

可以轉化為, 在排成一排的\(n\)個小球的間隙中插入\(m-1\)根木棍使得\(n\)個小球分成\(m\)個部分

一共有\(n-1\)個間隙,因此方案數為\(c_^\)

是不是感覺和t6很像呢o( ̄▽ ̄)o 實際上做法也挺類似的

我們先想一想, 如果有\(n\) 個相同的球,放進 \(m\) 個不同的盒子,盒子不允許為空,那我們在每乙個盒子中先放上乙個球,

是不是問題就變成了求——有\(n-m\) 個相同的球,放進 \(m\) 個不同的盒子,盒子允許為空的方案數了呢(。・∀・)ノ゙

而反過來推顯然也是成立的, 因此,第五個問題就變成了求\(n+m\) 個相同的球,放進 \(m\) 個不同的盒子,盒子不允許為空的方案數啦

方案數為\(c_^\)

假設我們已經考慮完了前\(n-1\)個球的擺放情況, 現在開始考慮第\(n\)個球應該放在**了呀

細想一下,大概可以分成兩種情況的:

\((1)\)它單獨放在乙個新的箱子裡(不是盒子的嗎emm)

假設新增乙個盒子後一共有\(m\)個盒子, 那麼它的方案數一定是和\(n-1\)個球,\(m-1\)個盒子的方案數

\((2)\)它放在之前的任意乙個盒子當中

假如現在是\(m\)個盒子的話, 那麼它的方案數就是\(m*\)(\(n-1\)個球,\(m\)個盒子的方案數)啦

因此, 若我們用\(f[n][m]\)來表示\(n\)個球\(m\)個盒子的方案數的話, 那麼\(f[n][m]\)的遞推式應該為\(f[n][m]=f[n-1][m-1]+f[n-1][m]*m\)

邊界:\(f[i][j]=1(i=j 或 j=1)),f[i][j]=0(j>i)\)。

實際上,這就是第二類斯特林數

有\(m\)個盒子, 可以為空其實可以轉化為有\(1、2、3...m\)個盒子, 不允許為空的情況

因此方案數為\(\sum_^f[n][i]\) f的意義與上一題相同哦

與t4有關哦

我們得出一種\(n\) 個不同的球,放進 \(m\) 個相同的盒子,盒子不為空的方案後,再給每個盒子編號 一共有\(m!\)種不同的編號方案

因此, 總方案數為\(f[n][m]*m!\)

令方案數為\(f[n][m]\), 我們可以分別考慮盒子均不為空和有空盒子兩種情況

當有空盒子時, 因為一定有至少乙個空盒子 , 所以\(f[n][m]=f[n][m-1]\)是成立的

當所有的盒子中都放了小球的時候,

我們可以在每個盒子中先都放乙個小球, 於是問題就變成了求\(n-m\) 個相同的球,放進 \(m\) 個相同的盒子,盒子可以為空的方案數啦

此時\(f[n][m]=f[n-m][m]\)emm

因此, 遞推式就找到啦o( ̄▽ ̄)d \(f[n][m]=f[n-m][m]+f[n][m-1]\) 邊界為\(f[i][j]=1 (i=0or1 或 j=1),f[i][j]=f[i][i] (j>i)\)。

在每個盒子中先都放乙個小球, 於是問題就變成了求\(n-m\) 個相同的球,放進 \(m\) 個相同的盒子,盒子可以為空的方案數啦

方案數:\(0(m>n)\)或者 \(f[n-m][m]\)(\(n>=m\),\(f\) 就是中的 \(f\)呀)。

問題 I 盒子與球 box

問題 i 盒子與球 box 時間限制 1 sec 記憶體限制 128 mb 提交 5 解決 5 提交 狀態 討論版 命題人 150112200121 edit testdata 題目描述 n 個不同球放入 m個不同盒子,盒子不能為空,求有幾種放法 輸入 輸入兩個正整數n,m0 n,m 10 輸出 輸...

盒子與球問題的八種情況(Python實現)

import math 考慮每個小球有m個盒子可以選擇放入,而一共又有n個小球,所以方案數為m n defdifferent ball different box empty ball,box return box ball 考慮插板法 將n個小球排成一排,將m 1塊板子插在小球之間的空隙中,由於一...

關於拿球的問題

桌上排列著100個球,兩個人輪流拿球裝入口袋,能拿到第100個球的人為勝利者,條件是 拿球者每次至少要拿1個但最多不能超過五個,問 如果你是先拿球的人,以後不管怎麼都能保證你能得到第100個球,你個先拿幾個?然後怎麼拿?為什麼?解題思路 1 我們不妨逆向推理,如果只剩6個桌球,讓對方先拿球,你一定能...