這個問題推廣一下,就是錯排問題,是組合數學中的問題之一。考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。 n個元素的錯排數記為d(n)。 研究乙個排列錯排個數的問題,叫做錯排問題或稱為更列問題
ok,現在詳細分析這個問題,我們要的最終結果就是書的編號與所在位置的編號不同,在這裡,我們把n本書的錯排運算元記為d(n),那n-1本就是d(n-1),n-2本就是d(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本的錯排運算元d(n-2),結合第一步,我們可以得到第一種情況總共有(n-1)*d(n-2)種方法
第二種情況:我們不選擇這個空著的位置m啦,我們手持這本編號為k的書,我們從除了位置m以及位置k的剩下的n-2個位置中選擇乙個位置,ok,我們現在開始想,我手裡這本書不能放在這個位置m,嗯嗯,除了第一步我們放置的那本書m不用管了,我們還要搞手裡這本和剩下的n-2本,也就是n-1本,同時又要求手裡這本k還不能放到位置m,這是不是就相當於把手裡這本加上剩下的n-2本也就是n-1本書進行錯排呢,哇哇哇,想一想,錯排的定義,要求每本書都不能呆在某乙個特定位置,是不是剛好符合呢qwq,所以,現在的為題就到了求手裡這本和剩下的n-2本總共是n-1本書的錯排運算元,我們記為d(n-1),結合第一步,我們得出這第二種情況共有(n-1)*d(n-1)種方法
好的,現在我們總結兩種情況,結果進行相加,就可以得到遞推公式啦
遞推公式為:
演算法 錯排問題
錯排問題 就是一種遞推式,不過它比較著名且常用,所以要熟記!方法一 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...
習題 錯排問題
十本不同的書放在書架上。現重新擺放,使每本書都不在原來放的位置。有幾種擺法?這個問題推廣一下,就是錯排問題,是組合數學中的問題之一。考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。問題分析 要使每本書都不在原來放的位置,現在假設有n本書,...