HDU 2048 錯排公式

2021-08-21 05:05:26 字數 1236 閱讀 8289

n

n

個人全沒有中獎的概率 -> 發生這種情況的所有可能性/情況總數

我們來想一想全部錯排該怎麼求。

假設前n−1

' role="presentation">n−1

n−1個人都完成了錯排,那麼第

n n

個人可以和這n−

1' role="presentation">n−1

n−1個人任意乙個互換,那麼就完成了全部錯排,此時方法數為(n

−1)f

(n−1

) (n−

1)f(

n−1)

; 假設前n−1

n −1

乙個人未完成錯排,但是前n−

2 n−2

個人已經完成了全部錯排,第n−

1 n−1

個人還是自己的位置,所以只要第

n n

個人和第n−

1' role="presentation">n−1

n−1個人完成互換即可完成

n n

個人錯排。但是,n−

1' role="presentation">n−1

n−1個人中那個未完成錯排的人可能是這n−

1 n−1

個人裡的任意乙個,所以方法數為(n

−1)f

(n−2

) (n−

1)f(

n−2)

。 所以錯排總的方法數為f(

n)=(

n−1)

(f(n

−1)+

f(n−

2)) f(n

)=(n

−1)(

f(n−

1)+f

(n−2

))

最後所有情況的可能數為n!

n

!

#include 

#include

#include

#include

#include

using

namespace

std;

const

int n = 7e5;

int main()

; for(int i = 3; i < 21; ++i)

int t;

cin>>t;

while(t--)

return

0;}

錯排問題 hdu2048

錯排問題 問題 十本不同的書放在書架上。現重新擺放,使每本書都不在原來放的位置。有幾種擺法?這個問題推廣一下,就是錯排問題,是組合數學中的問題之一。考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。n個元素的錯排數記為d n 研究乙個排列錯...

錯排問題 hdu2048

n個有序的元素有n 種排列方式,如果乙個排列使得所有元素都不在原來的位置上的排列就叫錯排。1 錯排有兩種方法進行計算,一種是基於容斥定理最後得出來的乙個階乘的計算式,計算機對於階乘非常的不友好,因此第一種很少使用。2 由於階乘的原因,我們不得不再尋找一種計算錯排dn的方法。首先我們以1,2,3,4的...

hdu 2048 錯排問題

錯排問題本質上就是乙個動態規劃問題,其狀態轉移方程為 記d n 為n個人錯排情況的總數。那麼策略可以描述為 分析第n個人錯排的可能情況 1 前n 1個人滿足錯排的情況,那麼第n個人加入後還要錯排意味著第n個人與前n 1個人裡的任意乙個交換字條 共有n 1種交換法 2 若前n 1個人並不滿足錯排,但加...