組合數學 容斥原理 求指定區間內與n互素的數的個數

2021-08-15 06:01:35 字數 582 閱讀 5553

求指定區間內與n互素的數的個數

給出整數n和r。求區間[1,r]中與n互素的數的個數。

去解決它的逆問題,求不與n互素的數的個數。

考慮n的所有素因子pi(i=1···k)

在[1,r]中有多少數能被pi整除呢?它就是

然而,如果我們單純將所有結果,會得到錯誤答案。

有些數可能被統計了多次(被好幾素因子整除,如6,在計算2時,3時就重複了)

所以我們要用容斥原理來解決。我們可以用2^k的演算法求出所有的pi的組合,然後計算每種組合的pi乘積,通過容斥原理來對結果進行加減處理。

關於此問題的最終實現

int prim[maxn];

int solve(int n,int r)

}if(n>1)

prim[num++]=n;

//對n分解素因子,num是n的素因子的個數

int sum=0;

for(int msk=1;msk

msk=011001,表示選擇了n的p[0],p[3],p[4],這三個素因子。

容斥定理可以用位運算和dfs來實現

錯排問題 組合數學 容斥原理

3.錯排問題 problem 題目描述 n本不同的書放在書架上。其中m本書已經重新擺放好,將剩下的n m 本書也重新擺放,使每本書都不在原來放的位置。求有幾種擺法。輸入資料 第1行兩個數n,m 接下來m行,每行兩個數xi,yi表示原來的第xi本書已經放到了第yi 個位置上資料保證任意兩個x不相同,任...

組合數學 容斥原理和錯位排列

真的,學了組合數學你會克服公式恐懼症0.0深有體會 設a 1,a2 a n 為有限集合,用 a i 表示集合ai 中的元素個數那麼有這樣的結論 a 1 a2 a n i 1n ai 1 in ai aj 1 i jn ai aj ak 1 n 1 a1 a2 an 總的概括就是奇數個集合的並集累加和...

CCA的小球 組合數學 容斥原理

給定 n 個小球,每個小球有顏色,要將它們擺成一行 兩個方案不同,當且僅當存在某個位置,兩種方案擺在這個位置的小球顏色不同。乙個方案合法,當且僅當不存在任意兩個位置相鄰的小球顏色相同,求合法方案數對 10 9 7 取模後的值 首先考慮取反面計算。考慮 兩個方案不同,當且僅當存在某個位置,兩種方案擺在...