錯排問題詳解

2021-10-02 16:36:21 字數 2805 閱讀 1087

n個有序的元素應有n!個不同的排列,如若乙個排列使得所有的元素不在原來的位置上,則稱這個排列為錯排;有的叫重排。

錯排公式

遞推關係

為求其遞推關係,分兩步走:

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

第二步,考慮第k個元素,這時有兩種情況:(1)把它放到位置n,那麼對於除n以外的n-1個元素,由於第k個元素放到了位置n,所以對剩下n-2個元素的錯排即可,有f[n-2]種放法;(2)第k個元素不放到位置n,這時對於這n-1個元素的錯排,有f[n-1]種放法。

根據乘法和加法法則,綜上得到f[n]=(n-1)∗

*∗( f[n-1]+f[n-2] )

再詳細一點 轉一篇大神的講解

這個問題推廣一下,就是錯排問題,是組合數學中的問題之一。考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。 n個元素的錯排數記為d(n)。 研究乙個排列錯排個數的問題,叫做錯排問題或稱為更列問題

ok,現在詳細分析這個問題,我們要的最終結果就是書的編號與所在位置的編號不同,在這裡,我們把n本書的錯排運算元記為f(n),那n-1本就是f(n-1),n-2本就是f(n-2)啦,下面,我們把放置問題分為兩步(初始位置號與書的編號相同):

第一步:

我們取一本書,書的編號為m,現在這本書就在我們手中,注意,按照題目要求,最開始的時候這本書的位置號也是m號,按照題目要求,我們現在放書時不能放回這個位置m了,而是要選擇其他位置,那麼有多少種選擇呢,想一下,總共有n本書,n個位置,現在我手裡這本書不能把它放到位置m,那麼剩下的n-1個位置我當然就是隨便扔啦,也就是n-1種扔法,好,現在,我選擇了位置k,我決定把手裡這本書放到位置k這裡,記住這個是位置編號k,那麼,我肯定要把原來這裡的編號為k的書拿出來,再把這本編號為n的書放進去嘍。所以,現在我們手裡的書的編號是k

第二步:

我們把手裡這本編號為k的書本放到書架,注意,放的過程中我們又面臨兩種情況,可以想到,此時此刻現在書架上編號m的位置是空著的,所以我們可以選擇放在這個位置上,書的編號為k,位置編號為m,沒錯,滿足題意,這是第一種情況,還有一種就是我不選擇這個空著的位置m,我再重新選擇乙個新的位置,我們稱之為第二種情況,下面詳細分析

第一種情況:我把這本編號為k的書放到這個編號為m的位址,那現在我們面前是什麼狀況呢,就是位置k和位置m的書交換位置,也就是位置號不等於書號,即滿足錯排,總共n個位置,我們只動了m和k這兩個位置,那麼剩下的n-2個位置還是紋絲不動,保持一一對應的關係呢,那麼對於剩下的這n-2本書的錯排操作,我們又回到了問題的起點,求n-2本的錯排運算元f(n-2),結合第一步,我們可以得到第一種情況總共有(n-1)∗

*∗f(n-2)種方法

第二種情況:我們不選擇這個空著的位置m啦,我們手持這本編號為k的書,加上剩下的n-2本書一共有n-1本,直接對這n-1本書進行錯排就好了,即(n-1)∗

*∗f[n-1]

原答案第二種情況我認為有點廢話,所以這裡我進行了改動 這裡給出我對第二種情況的思考 因為第一種情況是將編號為k的書放在m位上,所以第二種情況要求k不在m位上,但我一直搞不懂為什麼對n-1個元素進行錯排就能確定k不在m位上 其實這裡是需要跳脫出來的 我們可以將m位視作k的位置,即k不能放在k上 那其實就是對包括編號k的n-1本書進行錯排

暫時先這樣理解吧- -我認為這是唯一能讓我不再糾結下去的辦法了

好的,現在我們總結兩種情況,結果進行相加,就可以得到遞推公式啦

遞推公式為:f[n]=(n-1)∗

*∗( f[n-1]+f[n-2] )

給出大神的原詳解

這裡還有一種解釋我覺得是比較易懂的,就寫一下

借用hdu2049的題目:不容易系列之(4)——考新郎

首先考慮,如果開始有n-1個新郎,並且這n-1個人都已經完成了錯排(有f(n-1)種可能),現在又來了乙個人,那麼後來的第n個人可以通過用自己的新娘去和那n-1個人中的任意乙個交換,來實現n個人都錯排。這種情況有(n-1)∗

*∗f[n-1]種可能;

另外,如果開始的n-1個人不是都錯排,那麼要想使第n個人過來與其中乙個交換後實現錯排的話就必須滿足兩個條件:

1.那n-1個人中只有乙個人選到了自己的新娘,也就是說有n-2個人都已經錯排了。

2.第n個人必須和那個選到自己新娘的人去交換,但那個選到自己新娘的人可以是n-1個人中的任意乙個。這種情況有(n-1)∗

*∗f[n-2]種可能。

其他情況都不能滿足n個人錯排。

因此遞推關係:f[n]=(n-1)*(f[n-1]+f[n-2])

如果實在有不會的那就先套公式吧- -別有強迫症 多刷刷題再回來看看 會簡單很多

錯排公式詳解

在hdu刷題時遇到了關於錯排公式的一些問題。本篇文章將詳細解釋錯排公式的推導過程。錯排的定義 一段序列中一共有n個元素,那麼可知這些元素一共有n 種排列方法。假如在進行排列時,原來所有的元素都不在原來的位置,那麼稱這個排列為錯排。而錯排數所指的就是在一段有n個元素的序列中,有多少種排列方式是錯排。遞...

演算法 錯排問題

錯排問題 就是一種遞推式,不過它比較著名且常用,所以要熟記!方法一 n各有序的元素應有n!種不同的排列。如若乙個排列式的所有的元素都不在原來的位置上,則稱這個排列為錯排。任給乙個n,求出1,2,n的錯排個數dn共有多少個。遞迴關係式為 d n n 1 d n 1 d n 2 d 1 0,d 2 1 ...

演算法 錯排問題

今天我們再來學習乙個比較簡單的演算法,今天我們學習的是錯排問題,什麼是錯排問題呢?這樣說吧,假如現在書架上放有10本書,每本書都有固定的位置,現在讓你重新排列這些書,讓新排好的每一本書都不在原來的位置問你有多少種排列的情況。假如我們用num陣列來代表可能的情況,那麼我們容易知道num 1 0,num...