隔板法經典應用

2021-08-23 14:32:16 字數 1322 閱讀 6666

隔板法就是在n個元素間插入(b-1)個板,即把n個元素分成b組的方法。c(n-1,b-1)

隔板法必須滿足三個條件:

這n個元素必須相同,(2)所分成的每一組至少分得乙個元素,(3)分成的組別彼此差異。

例如:某校組建一球隊需16人,該校共10個班級,且每個班至少分配乙個名額,共有幾種情況。c(16-1,10-1)。2.對

n件相同物品(或名額)分給

m個人(或位置),允許若干個人(或位置)為空的問題

,可以看成將這

n件物品分成

m組,允許若干組為空的問題.將

n件物品分成

m組,需要

m-1塊隔板,將這

n件物品和

m-1塊隔板排成一排,佔

n+m-1

位置,從這

n+m-1

個位置中選

m-1個位置放隔板,因隔板無差別,故隔板之間無序,是組合問題,故隔板有

cn+m-1 m-1

種不同的方法,再將物品放入其餘位置,因物品相同無差別,故物品之間無順序,是組合問題,只有

1種放法,根據分步計數原理,共有

cn+m-1 m-1×1=cn+m-1 m-1

種排法

3.求方程x1+x2+…+xk=n的非負整數解或正整數解

(1)方程x1+x2+x3+x4=10的正整數解有多少組?

(2)方程x1+x2+x3+x4=10的非負整數解有多少組?

解:(1)轉化為10個相同的小球裝入4個不同的盒子,每盒至少有乙個,有c(10-1,4-1)=84種。

轉化為10個相同的小球裝入4個不同的盒子,可以有空盒,有c(10+4-1,4-1)種。

4.求方程x1+x2+…+xm=k(0<=xi<=n)的非負整數解的方案數。

解:有限制條件,用容斥搞一搞。

對於指定t個盒子(例如1,2,3,···,t號盒子)中的球數至少為n+1個球的方法等同於將(x-t*(n+1))個球放入y個盒中,每個盒中至少0個球的放法,即(x-t*(n+1))個球放入y個盒子,再在指定的t個盒中放入n個,為c(x-t*(n+1)+y-1,y-1)。

根據容斥原理,每個盒子至多n個球的方法為總數-所有指定乙個盒子的球數大於n的方法+所有指定兩個盒子的球數大於n的方法-所有三個盒子的球數大於n的方法+

即為c(k+m-1,m-1)-c(m,1)*c(k-(n+1)+m-1,m-1)+c(m,2)*c(k-2*(n+1)+m-1,m-1)+···+(-1)^t*c(m,t)*c(k-t*(n+1)+m-1,m-1)+···

其中t屬於1到k/(n+1)的閉區間。c(k-t*(n+1)+m-1,m-1)的k-t*(n+1)+m-1>=m-1,一化簡就可得到k/(n+1)。

矩陣乘法經典應用之置換

學習用矩陣做置換的過程很有趣,我遇到的置換問題最開始的思路就向矩陣發展了,然而很不幸,那題時間卡的緊,用矩陣是超時的做法 反正我沒過 不過我也意外的學習了這樣的方法 經典的置換矩陣 比如 1 2 3 4 2 4 1 3 設轉換矩陣是a。給出置換方法 表示第所以 這是那一道題 注 下面的 是超時的,我...

歸併演算法經典應用 求解逆序數

在之前介紹線性代數行列式計算公式的時候,我們曾經介紹過逆序數 我們在列舉出行列式的每一項之後,需要通過逆序數來確定這一項符號的正負性。如果有忘記的同學可以回到之前的文章當中複習一下 線性代數行列式 如果忘記呢,問題也不大,這個概念比較簡單,我想大家很快就能都搞清楚。面試題當 現。我們先來回顧一下逆序...

ArrayList用法 (經典)

system.collections.arraylist類是乙個特殊的陣列。通過新增和刪除元素,就可以動態改變陣列的長度。一 優點 1。支援自動改變大小的功能 2。可以靈活的插入元素 3。可以靈活的刪除元素 二 侷限性 跟一般的陣列比起來,速度上差些 三 新增元素 1 publicvirtualin...