組合數學部分知識點

2021-06-23 09:23:08 字數 1023 閱讀 2842

組合數學

加法乘法原理 分類,分步

錯排公式 d(n) = (n-1) [d(n-2) + d(n-1)]

第一步,把第n個元素放在乙個位置,比如位置k,一共有n-1種方法;

第二步,放編號為k的元素,這時有兩種情況:⑴把它放到位置n,那麼,對於剩下的n-1個元素,由於第k個元素放到了位置n,剩下n-2個元素就有d(n-2)種方法;⑵第k個元素不把它放到位置n,這時,對於這n-1個元素,有d(n-1)種方法;

證明:已知n + 1個正整數,它們全都小於或等於2n,證明當中一定有兩個數是互質*的。

假設有n個盒子,在第1個盒子中放1和2、在第2個盒子中放3和4、在第3個盒子中放5和6、……、在第n個盒子中放2n - 1和2n。

若從在這n個盒子中隨意抽出n + 1個數,其中最少有乙個盒子的兩個數均會被抽出。由此,可知這n + 1個數中必定有一對連續數,而明顯地連續數是互質的。

/*sky code

求得是n個數中,有多少組(a,b,c,d)的公約數為1,值得注意的是這四個數不一定兩兩互質。  

所以我們從它的反面考慮,先求出公約數不為1的個數。  

思路:把每個數素數分解,記錄不重複素因子所能組成的因子,把這些因子的總數統計,並且統計每個因子是由多少個素因子組成  

如這n個數中含2的個數為a,含3的個數為b,含6的個數為c,那麼公約數大於1的總數為p=c(a,4)+c(b,4)-c(c,4),總的個數為c(n,4)  

用c(n,4)-p即為所求

*/#include #include #include #define maxn 10000+100

__int64 a[maxn];

__int64 b[maxn];

__int64 c[maxn];

__int64 p[maxn];

__int64 n;

__int64 num;

__int64 yz;

void dfs()

} if(num>1) c[yz++]=num;//c中存放質因子

for(i=1;i<(1<

知識點 組合數

1.逆元求解組合數 目標 求出c n,m p 這裡p是乙個素數!方法 費馬小定理求逆元 因為膜的性質並不對除法適用,比如 a b c 但是,當我們知道了b c的逆元d時,問題可以轉化為 a d c a c b c c 考慮費馬小定理 a p 1 1 mod p 顯然有 a a p 2 1 mod p...

Python的Opencv初學部分知識點(三)

roi region of interest 區域範圍獲取,可以通過numpy來指定寬高獲取roi位置 通過numpy來獲取制定高度寬度得roi區域範圍 face src 10 600,500 1000 將roi區域轉換為灰色 gray cv.cvtcolor face,cv.color bgr2g...

Python的Opencv初學部分知識點(六)

直方圖反向投影 直方圖反向投影可以用於影象中某個圖案的追蹤查詢,直方圖漂移通過在規定範圍內不斷漂移,然後對比原影象直方圖,直到找出最相似的區域。直方圖得反向投影多數基於hsv色彩空間,直方圖得反向投影基於2維直方圖建立 實現。建立得二維直方圖 defhist2d demo image hsv色彩空間...