組合數奇偶性判定方式

2021-08-07 17:09:15 字數 2237 閱讀 9137

結論:對於c(n,k),若n&k == k 則c(n,k)為奇數,否則為偶數。

證明:組合數的奇偶性判定方法為: 

公式p是指排列,從n個元素取r個進行排列(即排序)。 (p是舊用法,現在教材上多用a,arrangement) 

公式c是指組合,從n個元素取r個,不進行排列(即不排序)。 組合數的奇偶性判定方法為:   結論: 

對於c(n,k),若n&k == k 則c(n,k)為奇數,否則為偶數。   證明: 

利用數學歸納法: 

由c(n,k) = c(n,k-1) + c(n-1,k-1);   對應於楊輝三角:   1   1 2 1   1 3 3 1   1 4 6 4 1 

……………… 

可以驗證前面幾層及k = 0時滿足結論,下面證明在c(n-1,k)和c(n-1,k-1) (k > 0) 滿足結論的情況下,   c(n,k)滿足結論。 

1).假設c(n-1,k)和c(n-1,k-1)為奇數:   則有:(n-1)&k == k;   (n-1)&(k-1) == k-1; 

由於k和k-1的最後一位(在這裡的位指的是二進位制的位,下同)必然是不同的,所以n-1的最後一位必然是1。   現假設n&k == k。 

則同樣因為n-1和n的最後一位不同推出k的最後一位是1。 

因為n-1的最後一位是1,則n的最後一位是0,所以n&k != k,與假設矛盾。   所以得n&k != k。 

2).假設c(n-1,k)和c(n-1,k-1)為偶數:   則有:(n-1)&k != k;   (n-1)&(k-1) != k-1;   現假設n&k == k. 

則對於k最後一位為1的情況: 

此時n最後一位也為1,所以有(n-1)&(k-1) == k-1,與假設矛盾。   而對於k最後一位為0的情況: 

則k的末尾必有一部分形如:10; 代表任意個0。   相應的,n對應的部分為: 1*; *代表0或1。 

而若n對應的*中只要有乙個為1,則(n-1)&k == k成立,所以n對應部分也應該是10。 

則相應的,k-1和n-1的末尾部分均為01,所以(n-1)&(k-1) == k-1 成立,與假設矛盾。 

所以得n&k != k。 

由1)和2)得出當c(n,k)是偶數時,n&k != k。   

3).假設c(n-1,k)為奇數而c(n-1,k-1)為偶數:   則有:(n-1)&k == k;   (n-1)&(k-1) != k-1;   顯然,k的最後一位只能是0,否則由(n-1)&k == k即可推出(n-1)&(k-1) == k-1。   所以k的末尾必有一部分形如:10;   相應的,n-1的對應部分為: 1*;   相應的,k-1的對應部分為: 01; 

則若要使得(n-1)&(k-1) != k-1 則要求n-1對應的*中至少有乙個是0.   所以n的對應部分也就為 : 1*; (不會因為進製變1為0)   所以 n&k = k。 

4).假設c(n-1,k)為偶數而c(n-1,k-1)為奇數:   則有:(n-1)&k != k;   (n-1)&(k-1) == k-1;   分兩種情況: 

當k-1的最後一位為0時: 

則k-1的末尾必有一部分形如: 10;   相應的,k的對應部分為 : 11; 

相應的,n-1的對應部分為 : 10; (若為11,則(n-1)&k == k)   相應的,n的對應部分為 : 11;   所以n&k = k。 

當k-1的最後一位為1時: 

則k-1的末尾必有一部分形如: 01; (前面的0可以是附加上去的)   相應的,k的對應部分為 : 10; 

相應的,n-1的對應部分為 : 01; (若為11,則(n-1)&k == k)   相應的,n的對應部分為 : 10;   所以n&k = k。 

由3),4)得出當c(n,k)為奇數時,n&k = k。 

綜上,結論得證! 

n&k是n(按位與)k的意思,比如說n=9,k=3,那麼轉化成二進位制n=1001,k=0011,進行運算(都是1則為1,否則為0)後得到1,如果它和k相等,組合數則為奇數,否則為偶數,至於其中的道理是:根據二進位制的運算法則,從後向前數,有幾個0(不能有間斷),就有幾個偶數因子(這裡就說是以2為因子吧),按位與的功能就是消0,當然根據組合公式,分子上的偶數因子不可能比分母上的少,但是如果相等的話,那麼這個數就是乙個奇數了,按位與的功能是0和1在一塊就消1,那麼如果想保留原有的k值,n轉化成二進位制後就要有許多個1(通俗一點),這樣的話,他的偶數因子也會減少,經過證明,可以得到當n&k==k時,n!和k!(n-k)!的偶數因子一樣多,就可以把它們消去,從而得到乙個奇數。

文件出處:

組合數奇偶性的判斷(附證明)

learning 方法一 計算一下,然後看它的奇偶性 但是這個時間以及資料範圍上都不允許 方法二對於給定c n,m 檢查n!中2因子的個數與m!和 n m 中2因子個數和的關係,假設n 中2因子個數為a,m 中2因子個數為b,n m 中2因子個數為c,則顯然有a b c 並且當a b c時,一定為奇...

奇偶性剪枝

我們先來看一道題目 有乙個n x m大小的迷宮。其中字元 s 表示起點,字元 d 表示出口,字元 x 表示牆壁,字元,表示平地。你需要從 s 出發走到 d 每次只能向上下左右相鄰的位置移動,並且不能走出地圖,也不能走進牆壁。每次移動消耗1時間,走過路都會塌陷,因此不能走回頭路或者原地不動。現在已知出...

1085 判斷奇偶性

判斷奇偶性 time limit 1000ms memory limit 65536k total submit 128 accepted 58 description 計算乙個無符號整數x的二進位制中1的個數是奇數還是偶數。input 多組測試資料。每組測試資料報括乙個無符號整數n 0 n 2 3...