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

2021-09-26 09:31:27 字數 1613 閱讀 6600

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時,一定為奇,否則為偶。

方法三由方法2可以很容易(稍後給出證明)地看出,n!中含有2因子的個數等於(n-它的二進位制形式中1的個數)(每除一次如果有1的話去掉乙個1)。那麼題意再次轉化為求m,n-m以及n的二進位制形式中1的個數。或者說,看n&m ?= m,這個呢,如果等於,那麼也就意味著,所有m中為1的位置n一定為1,那麼n-m就可以直接用二進位制減,這樣得到的差的二進位制中1的個數加上m中二進位制1的位數正好等於n中1的位數,由前面可以知道,這就是乙個奇數。

【關於方法三的證明】

先證明,若n=2

mn=2^m

n=2m

,n!中2因子的個數為n−1

n-1n−

1(即2m−

12^m-1

2m−1

)首先我們知道乙個計算n!中2因子個數的方法

a ns

=[n/

(21)

]+[n

/(22

)]+[

n/(2

3)]+

...−

−(1)

ans=[n/(2^1)]+[n/(2^2)]+[n/(2^3)]+...--(1)

ans=[n

/(21

)]+[

n/(2

2)]+

[n/(

23)]

+...

−−(1

)那麼由於此時的n=2

mn=2^m

n=2m

,上述式子就是乙個等比數列,求和可得ans

=2m−

1ans=2^m-1

ans=2m

−1推廣到更普遍的情況n!=

2m

n!=2^m

n!=2

m那麼我們肯定可以將n拆做:n=2

x1+2

x2+2

x3+.

....

+2xm

−−(2

)n=2^+2^+2^+.....+2^--(2)

n=2x1+

2x2+

2x3+

....

.+2x

m−−(

2)將(2)代入(1)中,再次由等比數列求和,可得ans

=(2x

1−1)

+(2x

2−1)

+(2x

3−1)

+...

.+(2

xm−1

)ans=(2^-1)+(2^-1)+(2^-1)+....+(2^-1)

ans=(2

x1−1

)+(2

x2−1

)+(2

x3−1

)+..

..+(

2xm−

1)然後開啟括號~

完事兒特別感謝sto ldx&cyk orz

組合數奇偶性判定方式

結論 對於c n,k 若n k k 則c n,k 為奇數,否則為偶數。證明 組合數的奇偶性判定方法為 公式p是指排列,從n個元素取r個進行排列 即排序 p是舊用法,現在教材上多用a,arrangement 公式c是指組合,從n個元素取r個,不進行排列 即不排序 組合數的奇偶性判定方法為 結論 對於c...

1085 判斷奇偶性

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

wikioi 2145 判斷奇偶性

題目描述 description 判斷函式y x n次方的奇偶性若是奇函式就輸出ji,偶函式輸出ou 輸入描述 input description 一行輸入n 輸出描述 output description 一行,輸出答案 樣例輸入 sample input 樣例輸出 sample output o...