今天在寫一個算法的時候用到了排列組合,突然感覺不熟悉了,於是自己搜索了下,
重新復習下,把筆記記下來,便於以后復習。
第一,排列
1)排列的定義,就是指從給定n個數的元素中取出指定r個數的元素,進行排序
2)排列公式

3 公式解讀,
總長度為r,第一個人有n-0種選,第二個有n-1種,,,,最后一個有n-(r-1)種(為什么是減去(r-1)
因為到第r個人的時候,發現自己前面有r-1個人已經消耗了r-1個選擇了,自己的選擇余地變成n-(r-1),這和第一個人發現前面有0個選擇已經消耗是一樣道理)
例如 從4個球中,選出2個球,排列的可能性,我們可以求得

排列的時候,第一個球可以有4種可選,第二個球只能有三種可選,所以 是4×3=12,當然我們也可以用公式算,4!/(4-2)!=12 , 一個道理

第二,組合
1)組合的定義,則是指從給定n個數的元素中僅僅取出指定r個數的元素,不考慮排序
2) 組合公式:

3)公式解讀,
和排序公式比較,我們可以看出,組合是在排序的基礎上除以 r!,為什么除以r!, 是因為組合不考慮排序的問題
例如,從四個球 里面2個球 即 C(4,2) ,選2個球組合,求組合數的可能性是多少?
4個球取2個的排列是4*3=12種情況,
2個球內部排列的情況是2!=2, 所以4個球取2個球的組合的情況是12/2=6
