stirling公式:n! ~ sqrt(2*π*n)(n/e)n
生成演算法1:johnson,trotter
要生成全排列n,則在全排列n-1上,每個排列用插空法插入n
n=2:
12
21
n=3:
1 23
132
31 2
32 1
231
2 13
生成演算法2:s.even, algorithm combinatorics, 1973
如果乙個數k的箭頭指向乙個比他小的相鄰的數,那麼稱k是活動的
對於1..n的序列中的整數n,除以下兩種情況外,n總是活動的
1. n在最左邊,n的箭頭指向左
2. n在最右邊,n的箭頭指向右
生成方法:從123..n開始(每個肩頭初始指向左),做:
1. 求出最大的活動整數m
2. 交換m和其指向的整數
3. 交換所有p>m的整數p的方向
直到序列中沒有活動整數為止。
生成所有組合方案:
基2演算法:
從an-1..a2a1a0=00..0開始,當an-1..a2a1a0!=11..1,做
1. 求出最小的j使得aj=0
2. 用1替換aj並用0替換所有aj-1aj-2..a0
生成的序稱為n元組的字典序
gray碼生成:
演算法1:
1. 1階gray碼是0, 1
2. 假設n-1階gray碼已經生成,首先給n-1階gray碼前面加0,再給逆序n-1階gray碼前面加1。
演算法2:
從an-1..a2a1a0=00..0開始,當an-1..a2a1a0!=10..0,做
1. 如果σ(an-1..a1a0)為偶數,則改變a0
2. 否則,找最小的j使得aj=1,改變aj+1
生成r-組合:
令 a1a2
..ar是1..n的乙個組合。字典序中,第乙個組合是12..r。當a1a2
..ar不是(n-r+1)(n-r+2)..n,令k是滿足ak+1<=n且ak+1不是a1, a2
..ar的最大整數,使用序列a1a2
..ak-1(ak+1)(ak+2)..(ak+r-k+1)
例如:n=6的4組合中,1234的下乙個組合是1235,2356的下乙個組合是2456
c 排列組合排序 排列組合 組合數專題
書接上回,本期正男老師將帶大家梳理排列組合中組合數的相關考點,組合數考點可以細分為4類,分別為 分類數數問題 分組排序問題 塗色問題以及插棍問題。近六年高考真題中,組合數考點共涉及5道。組合數專題高考真題分布 組合數的定義以及公式如下圖所示。組合數定義 分類數數問題與排列問題中的窮舉問題相似,但分類...
排列組合實現
演算法 與網際網路 組合演算法 本程式的思路是開乙個陣列,其下標表示1到m個數,陣列元素的值為1表示其下標 代表的數被選中,為0則沒選中。首先初始化,將陣列前n個元素置1,表示第乙個組合為前n個數。然後從左到右掃瞄陣列元素值的 10 組合,找到第乙個 10 組合後將其變為 01 組合,同時將其左邊的...
排列組合 HNOI
我這方面比較水就只提供兩道題吧 1.hnoi2008 prison 監獄有連續編號為1.n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄此題略水,屬於hnoi送分題系列,用補集的思想可以輕鬆過。可能越獄...