[情報] 排組大不同(一)

看板SENIORHIGH作者 (僕は美味しいです)時間8年前 (2015/08/21 02:09), 8年前編輯推噓20(2004)
留言24則, 19人參與, 最新討論串1/1
排組大不同(一) 有N個不同物,放入K個不同箱,物全部放完 類型1. 任意分 (常見的基本題型) 選定一物,只能放一箱 選定一箱,可以放多物 →可視為以物為自變數(在定義域內)     以箱為應變數(在對應域內)的一對多函數關係(對應關係)  只要「對應關係不同」即視為結果不同 (排組要算的是有幾種不同的結果) 例一:有 5 個不同物 a, b, c, d, e    要全部任意放入 3 個不同的箱子 x, y, z 物 a b c d e 箱 x y z y x    箱 x y z y z 對應關係不同(e→x 與 e→z 不同) 即為二種不同的排列方式. Ans: 3^5 例二:有 3 個不同物,全部任意放入 5 個不同箱. Ans: 5^3 例三:有 3 個不同物,全部任意放入 3 個不同箱. Ans: 3^3 例四:有 n 個不同物,全部任意放入 k 個不同箱. Ans: k^n 結論是,這種函數對應關係,與 n, k 多寡無關 類型2. 每箱最多 1 物 (極好算的無聊變化題) 選定一物,只能放一箱 選定一箱,最多放一物 →只要物不同,必放不同箱 →可視為以物為自變數,以箱為應變數的一對一函數  當物數同於箱數時,為一對一且 onto 函數,有反函數(故可以箱選物)  當物數少於箱數時,為一對一但非onto函數,無反函數(只能以物選箱) 例五:有 3 個不同物 a, b, c 要全部放入 5 個不同的箱子 x, y, z, u, v 且每箱至多一物 Ans: 5*4*3 例六:有 3 個不同物 a, b, c 要全部放入 3 個不同的箱子 x, y, z 且每箱至多一物 Ans: 3*2*1 例七:有 n 個不同物,要全部放入 k 個不同的箱子 (n≦k) 且每箱至多一物 Ans: k*(k-1)*...*(k-n+1) = P(k,n) 類型3. 每箱最少 1 物 (討人厭的麻煩排容題型) 這裡基本上還是函數對應關係, 只是要利用排容扣掉不合的情形 要算排容之前,要先理解「排列組合」和「集合」的關係 以及「聯集內元素個數」如何計算的問題 例八:有 5 個不同物 a, b, c, d, e    要全部放入 3 個不同的箱子 x, y, z 且每箱最少 1 物 [Sol]:首先宇集內的元素,就是各種不同的放法(即任意分)    如 U = {(x, x, x, x, x), [就是a, b, c, d, e都放x] (y, x, z, y, x), [就是a→y,b→x,c→z,d→y,e→x] ...} 所以 n(U)= 3^5 = 243    但這裡面有很多不合的排法,我們必須予以扣除    例如把 x 箱子裡沒東西的排列方法放到 X' 集合裡 X'= {(y, y, y, y, y), (y, z, y, y, z)...} y 沒東西的 Y'= {(x, x, z, z, x), (z, z, z, z, z)...} z 沒東西的 Z'= {(y, x, y, x, y), (x, x, x, x, x)...} 只要符合以上任一項,我們都必須予以扣除 因此我們要扣的事實上是Union(X', Y', Z') 排容原理(取捨原理),就是扣掉這個我們不要的聯集 聯集的計算不另說明    但要提醒的是,常有同學去背排容原理的係數: C(n,1), C(n,2),...   這個係數可用的前提是同階的交集元素個數相同    如果你不知道我在說什麼,要嘛快去搞清楚,要嘛不要亂背東西    回到原題 n(X'∪Y'∪Z') = n(X') + n(Y') + n(Z') -n(X'∩Y') -n(X'∩Z') -n(Y'∩Z') +n(X'∩Y'∩Z') = C(3,1)*(2^5) - C(3,2)*(1^5) + C(3,3)*(0^5) 所求 = n(U) - n(X'∪Y'∪Z') = C(3,0)*(3^5) - C(3,1)*(2^5) + C(3,2)*(1^5) - C(3,3)*(0^5) = 243 - 96 + 3 - 0 = 150 (本來有計算錯orz) [Wrong Sol]    常見同學這麼做:    要每箱各一個?簡單嘛,我就先各給一個呀~ 把 a, b, c 一對一丟到 x, y, z 去, 3! 種 get! 再把 d, e 任意分配到 x, y, z 去, 3^2種 get!    一共是3!*(3^2)=6*9=54    這個錯誤少算了很多情形,例如 (x, x, x, y, z) 不會被算到    因為一開始就指定 a, b, c 要給 x, y, z 但這根本不必然。      更常見程度稍好的同學這麼做:    好吧,那我就讓 x, y, z 任選總行吧, 5*4*3 = 120 get! 你看我的 (x→a, y→d, z→e)總可以數到你剛舉的例子吧! 那還剩下兩個東西{b,c}還沒放,就亂放嘍,3^2=9 get! 所以一共是 120*9=1080    過猶不及!剛少算現在多算了! (x, y, z) (d, e) (a, b, c) (x, x) 這是剛剛算法裡的某一種結果。 x, y, z 先選了a, b, c, 然後剩下的d, e 任選選到了 x, x (x, y, z) (a, d) (e, b, c) (x, x) 這是剛剛算法裡的某一種結果。             x, y, z 先選了e, b, c 然後剩下的a, d 任選選到了 x, x @@" 不同的過程選到了相同的結果!    所以「過程」(即樹狀圖的枝數)與「結果」(所求)沒有一一對應!! 第二種錯誤有個重要特徵,就是「同一個箱子內的數個物品被分段放入」 只要發生這種事情,我能說有99%都是錯的算法 感謝AtDe大補充分組分堆作法 [Sol]:先依數量分布分類,再依物品分配(內容)作排組,最後計算總排列數 本題數量分布只有二類: x y z I 1 1 3 II 1 2 2 I x 先選 1 個,得 C(5,1) = 5 y 再選 1 個,得 C(4,1) = 4 z 拿剩下的全部,只有 1 種 共有 5*4 = 20 因為數量分布 (1,1,3), (1,3,1), (3,1,1) 的取法相同 故共有 20*3 = 60 種 (會不會有人誤認為是 20*(3!) 種呢? 想一下,要小心哦!) II x 先選 1 個,得 C(5,1) = 5 y 再選 2 個,得 C(4,2) = 6 z 拿剩下的全部,只有 1 種 共有 5*4 = 30 因為數量分布 (1,2,2), (2,1,2), (2,2,1) 的取法相同 故共有 30*3 = 90 種,故共有 150 種 (會不會有人誤認為是 30*(3!) 種呢? 想一下,要小心哦!) 另外,如果數量分布是 (1,2,3) 這種類型的,一共會有 3! 種哦 當然,同樣講分組分堆,有人的算法是這樣的 以 (1,1,2) 為例 {[C(5,1)*C(4,1)*C(2,2)]/(2!)}*3! 這是常看到的先分三堆,再分配給三個人的想法 再這裡要注意的是「數量相同的分堆才要去除其有序性」 要再多講的是,「乘法原理本身就隱含順序」 以上是n個不同物,全放入k個不同箱的題型 基本上就是函數的對應關係, 在某些子分類下有討厭的排容原理, 但沒有比排容原理更好處理的方式了orz ← 這句話要修正一下, 在數量少時,用分組分堆作應該較簡單 在數量多時,才用排容吧~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.4.201 ※ 文章網址: https://www.ptt.cc/bbs/SENIORHIGH/M.1440094152.A.57E.html

08/21 07:19, , 1F
用心!!首推!
08/21 07:19, 1F

08/21 07:43, , 2F
好懂!
08/21 07:43, 2F

08/21 08:02, , 3F
話說至少放一的方法有時候也可以用分組分堆來做...
08/21 08:02, 3F

08/21 08:50, , 4F
樓上說的沒錯,例八就可以~
08/21 08:50, 4F

08/21 08:51, , 5F
其實是「理論上全部都可以」,只是有時簡單有時麻煩
08/21 08:51, 5F

08/21 08:51, , 6F
簡單時比排容簡單,麻煩時比排容麻煩,視情況而定
08/21 08:51, 6F

08/21 09:07, , 7F
未看先推
08/21 09:07, 7F

08/21 09:58, , 8F
08/21 09:58, 8F
※ 編輯: LeonYo (140.122.140.144), 08/21/2015 13:01:07

08/21 13:27, , 9F
高調
08/21 13:27, 9F

08/21 14:15, , 10F
幫高調 推
08/21 14:15, 10F

08/21 16:49, , 11F
08/21 16:49, 11F

08/21 17:13, , 12F
08/21 17:13, 12F

08/21 17:34, , 13F
高調
08/21 17:34, 13F

08/21 18:04, , 14F
這單元就是搞不懂啊哭...
08/21 18:04, 14F

08/21 19:26, , 15F
08/21 19:26, 15F

08/21 21:00, , 16F
重要推! (122的!?
08/21 21:00, 16F

08/22 00:16, , 17F
08/22 00:16, 17F

08/22 10:34, , 18F
至少就是只有2種算法: (1)扣除法(排容原理) (2)累加法
08/22 10:34, 18F

08/22 10:34, , 19F
(完全沒有,至少1.至少2...)
08/22 10:34, 19F

08/22 14:10, , 20F
超感謝
08/22 14:10, 20F

08/22 14:10, , 21F
超感謝
08/22 14:10, 21F

08/22 14:12, , 22F
超感謝
08/22 14:12, 22F

08/23 16:34, , 23F
排列組合的秘方就靠你了大大
08/23 16:34, 23F

08/31 00:08, , 24F
推推
08/31 00:08, 24F
文章代碼(AID): #1LrXV8L- (SENIORHIGH)