章節連結
從網路課程 程式必修課!離散數學與演算法 來淺嚐一下沒機會在課堂上所學的離散數學與演算法。或許對撰寫程式的效能提昇會有些幫助。
課程相關資訊
[連結]:https://hiskio.com/courses/1196/lectures/133795
本篇範圍:Chapter 8
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
Combination 集合
從 1 個內有 n 個的集合內,挑出 r 個物品,但不在乎順序。我們稱此為組合,數量為 C(n,r)
C(3,2) = 3,代表從 1 個集合,內有 3 個物品,挑出 2 個但不在乎順序,這樣一共會有 3 種
C(n,r) = n! / r! * (n-r)!,其中 0 <= r <= n
概念上可以想成:算出組合數量後,若你在意其排序,就變成組合了
C(n,1) = n
C(n,0) = 1
C(n,n) = 1
C(n,r) = C(n, n-r) – n 個挑 r 個,也就是挑 n-r 個不要的