1. 程式人生 > 其它 >簡述錯排問題--2021/02/02

簡述錯排問題--2021/02/02

本文為初學錯排問題的記錄。

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

1)錯排問題:

在錯排裡面,對n個元素進行錯排,我們記為D(n)
則 D(n) 滿足:

當n<3時,D(1)=0,D(2)=1

	即對一個元素進行錯排是不存在的,對兩個元素進行錯排就是交換二者位置,僅有一個可能。

當n>=3時,則D(n)滿足以下這條公式

公式的思路的推導(不一定正確):

假設有n個元素,第一個元素為A,去的位置為a,現在我們將他隨機放到除去a以外的任意一個位置,就有 n-1 個可能。

假設A被我們放的位置是b,對應的位置原本應該填放的元素為B,則現在元素B的位置被元素A佔據了,B就要在剩下的位置裡填放。

那麼B的去向有兩個選擇:1.去A的位置(即a) 2.去除去a以外的剩下n-2個位置。

於是就產生了兩種可能性:

第一種可能:去A的位置(a)
那麼A和B的位置就定了下來,並且錯亂,剩下的就是對剩下的n-2個元素錯排,即 D(n-2) 。

第二種可能:去除a以外的任意一個位置
那麼只有A的位置被確定了下來,剩下的就是對剩下的n-1個元素進行錯排,即 D(n-1) 。

由此,我們得到了上述的D(n)=(n-1) [ D(n-1) + D(n-2) ]這條公式。