錯排問題(在程式中的應用)

2022-08-30 07:57:07 字數 1597 閱讀 5133

當n個編號元素放在n個編號位置,元素編號與位置編號各不對應的方法數用m(n)表示,那麼m(n-1)就表示n-1個編號元素放在n-1個編號位置,各不對應的方法數,其它類推.

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

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

綜上得到

m(n)=(n-1)[m(n-2)+m(n-1)]

特殊地,m(1)=0,m(2)=1

下面通過這個遞推關係推導通項公式:

為方便起見,設m(k)=k!n(k), (k=1,2,…,n)

則n(1)=0,n(2)=1/2

n>=3時,n!n(n)=(n-1)(n-1)!n(n-1)+(n-1)!n(n-2)

即 nn(n)=(n-1)n(n-1)+n(n-2)

於是有n(n)-n(n-1)=-[n(n-1)-n(n-2)]/n=(-1/n)[-1/(n-1)][-1/(n-2)]…(-1/3)[n(2)-n(1)]=(-1)^n/n!

因此n(n-1)-n(n-2)=(-1)^(n-1)/(n-1)!

n(2)-n(1)=(-1)^2/2!

相加,可得

n(n)=(-1)^2/2!+…+(-1)^(n-1)/(n-1)!+(-1)^n/n!

因此m(n)=n![(-1)^2/2!+…+(-1)^(n-1)/(n-1)!+(-1)^n/n!]

可以得到

錯排公式為m(n)=n!(1/2!-1/3!+…..+(-1)^n/n!)

從這乙個問題, 我們發現, 使用遞推的思想很容易證明錯排問題, 在百科之中, 對m(n-1)描述的不是特別清晰, 在這裡, 根據自己的理解, 簡要分析一樣, 當n元素位置不放在k元素的位置的時候, 我們進行下面分析的時候, 可以吧k元素的位置看做是n元素的位置, 這樣, 我們下一步要做的就是分析包括n在內的m(n-1)種可能。

當我們推到出來遞推公式, 這個在程式上的問題只是解決了一半, 下面, 要轉化遞推公式為通項公式, 這是乙個關鍵的一步, 因為, 用遞迴完成非log數量級的問題, 真的很不划算的, 至於通項公式的求解過程可以參見百科。

裝錯信封問題

1)同室四人各寫一張賀年卡,先集中起來,然後每人從中拿一張別人送出的賀年卡.則四張賀年卡的不同分配方式有[ ]

a.6種 b.9種 c.11種 d.23種

2)有5個客人參加宴會,他們把帽子放在衣帽寄放室內,宴會結束後每人戴了一頂帽子回家.回家後,他們的妻子都發現他們戴了別人的帽子.問5個客人都不戴自己帽子的戴法有多少種?

上述兩個問題,實質上是完全一樣的.是被著名數學家尤拉(leonhard euler,1707-1783)稱為「組合數論的乙個妙題」的「裝錯信封問題」的兩個特例.「裝錯信封問題」是由當時最有名的數學家約翰•伯努利(johann bernoulli,1667-1748)的兒子丹尼爾•伯努利(danidbernoulli,1700-1782)提出來的,大意如下:

乙個人寫了n封不同的信及相應的n個不同的信封,他把這n封信都裝錯了信封,問都裝錯信封的裝法有多少種?

當然, 自己第一次接觸錯排問題的時候, 也是ac了乙個有關裝錯信封的問題。

錯排原理的應用

錯排原理的應用一 hdoj2048神 上帝以及老天爺 問題分析 這就是一道典型的錯排原理的應用 n張票的所有排列可能自然是an n n 種排列方式 n張票n個人的錯排情況 f n i 1 f n 1 f n 2 n張票的所有排列可能自然是ann n 種排列方式 n張票的所有錯排情況是 n 1 f n...

錯排原理的應用

錯排原理的應用一 hdoj2048神 上帝以及老天爺 問題分析 這就是一道典型的錯排原理的應用 n張票的所有排列可能自然是an n n 種排列方式 n張票n個人的錯排情況 f n i 1 f n 1 f n 2 n張票的所有排列可能自然是ann n 種排列方式 n張票的所有錯排情況是 n 1 f n...

錯排問題的總結

方法一 n各有序的元素應有n!種不同的排列。如若乙個排列式的所有的元素都不在原來的位置上,則稱這個排列為錯排。任給乙個n,求出1,2,n的錯排個數dn共有多少個。遞迴關係式為 d n n 1 d n 1 d n 2 d 1 0,d 2 1 可以得到 錯排公式為dn n 1 1 2 1 3 1 n n...