關於錯排的容斥定理的一些心得

2021-07-04 09:03:11 字數 1212 閱讀 2816

賀卡問題:同室四人各寫一張賀年卡,先集中起來,然後每人從中拿一張別人送的賀年卡,則四張不同的賀年卡不同的分配方式有。現在考慮用排除法求出1、2、3、4這四個正整數的錯排的種數,從中摸索出規律.對於四個正整數1、2、3、4,這四個數的全排列數為4!.

有乙個數不錯排的情況應排除,由於1排在第1位的有3!種,2排在第2位的有3!種,,,4排在第4位的有3!種,所以共應排除4*3!種。然而在排除有乙個數不錯排的情況時,把同時有兩個數不錯排的情況也排除了,應予以補上,由於1、2分別排在第1、第2位上的情況共有2!種,同理1、3分別排在第1、第3位上的情況也有2!種,,,這四個數中同時有兩個數不錯排的情況共有c24種,所以應補上c24*2! =4!2!種.在補上同時有兩個數不錯排的情況時,把同時有三個數不錯排的情況也補上了,應予以排除,四個數中有1、2、3不錯排,1、2、4不錯排,1、3、4不錯排和2、3、4不錯排共c14種情況,所以應排c14*1!=4!3!種。在排除同時有三個數不錯排的情況時,把同時有四個數不錯排的情況也排除了,所以應補上同時有四個數不錯排的情況僅1、2、3、4這一種。a4=4!-4*3!+4!/2!-4!/3!+1=4!/2!-4!/3!+4!4!=9。

繼續這一過程,得到錯排的排列種數為

d(n) = n! - n!/1! + n!/2! - n!/3! + … + (-1)^n*n!/n! = ∑(k=2~n) (-1)^k * n! / k!,

即d(n) = n! [1/0! - 1/1! + 1/2! - 1/3! + 1/4! + ... + (-1)^n/n!].

其中,∑表示連加符號,k=2~n是連加的範圍;0! = 1,可以和1!相消。

錯排公式的原形為d(n) = n! (1/0! - 1/1! + 1/2! - 1/3! - ..... + (-1)^n/n!),當n很大時計算就很不方便。乙個供參考的簡化後的公式是d(n) = [n!/e+0.5] ,其中e是

自然對數的底

,[x]為x的整數部分

證明:由於1/e = e^(-1) = 1/0! - 1/1! + 1/2! - 1/3! - ..... + (-1)^n/n! + rn(-1),

其中rn(-1)是餘項,等於(-1)^(n+1) * e^u / (n+1)!,且u∈(-1, 0).

所以,d(n) = n! * e^(-1) - (-1)^(n+1) * e^u / (n+1), u∈(-1, 0).

一些經典的容斥問題

求三角形的個數比較簡單。首先全集是 binom 然後考慮補集,補集就是三點共線的點對。所以我們可以列舉每乙個點,然後為了避免算重,我們接下來只考慮標號比當前點小的點。接著就進行極角排序,這樣就可以統計出當前點所在的所有直線以及直線上的點的個數。設某直線上有 m 個點,那麼答案就減去 binom 即可...

有關容斥原理的一些東西

設有若干個物品以及 k 種屬性,每個物品都有若干種屬性。設有函式 f s 表示至少擁有屬性集合 s 的物品個數 參考乙個很簡單的 k 3 的情況 每種顏色的圓的物品集合都擁有同乙個屬性,圓外面是沒有屬性的物品,設全集 u 為所有屬性的集合。一般來說,我們要求三個圓面積的交。形式化的說,我們要求至少擁...

關於Web Worker的一些心得

現在在平台中線程js中不能識別extjs的方法,原因是執行緒js無法引入extjsd的方法。onmessage只接收資料,不能在裡面直接寫方法,只能呼叫外面的方法 webwork.js無法訪問window,docment等物件 案例 建立乙個執行緒 varworker newworker test ...