當前位置:首頁 » 編程語言 » c語言的錯排公式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言的錯排公式

發布時間: 2022-07-28 19:28:39

① 5個元素錯位排列為什麼是44

根據錯排公式計算5個元素的錯排就是44。

一個元素的錯排為0個。兩個元素的錯排為1個,三個元素的錯排為2個,四個元素的錯排為9,五個元素的錯排為44。錯排具有簡單的計算公式:D(n) = (n-1) [D(n-2) + D(n-1)]。

錯位重排問題就比較特殊,因為該題型特徵明顯,錯位重排問題也叫裝錯信封問題,這是源自於伯努利和歐拉在相互寫信過程中所發現的,題目就是需要求出錯位的方法數。只要大家理解推導過程,記住基本公式,就可以輕松解題。

錯位重排問題:

基本公式:Dn =(n-1)×(Dn-2 +Dn-1),其中D1=0,D2=1。

Dn表示n個數的錯位重排的方法數。

公式推導:若有n個人,n個座位,錯位重排。

(1)若n=1,1個人對應1個座位,無法錯位,故D1=0。

(2)若n=2,2個人,2個座位,要實現錯位,只能是如下的方式,故D2=1。

(3)對於n個人,n個座位,要實現錯位,分步來操作。

第一步,先安排第1個的座位,第1個人選擇的是第i個座位,有(n-1)種坐法。

第二步,安排剩下(n-1)個人的座位,分類來操作。

第一類,若第i個人選擇第1個座位,有一種坐法,剩下的(n-2)個人,有(n-2)個座位錯位重排,有Dn-2種坐法,共有1×Dn-2= Dn-2種坐法。

第二類,若第i個人選擇不是第1個座位,即相當於除了第1 個人外,其餘的(n-1)個人,(n-1)個座位,錯位重排,共有Dn-1種坐法。

綜上所述,根據計數原理可得,共有(n-1)×(Dn-2+ Dn-1)種坐法,即Dn =(n-1)×(Dn-2 +Dn-1),其中D1=0,D2=1。



② 錯排公式,講解

一排九個坐位有六個人坐,若每個空位兩邊都坐有人,
先坐人,共有6!=720種
再在任意2人的中間或是左右端點共插入3個空位,有7個位置可放空位。所以空位插法為C(7,3)=35種。
共有35*720=25200種方案。

編號為1,2,3,4,5的五個人,分別坐在編號為1,2,3,4,5的座位上,
錯排數的計算公式為D(n)=(n-1)*(D(n-1)+D(n-2),且D(1)=0,D(2)=1,D(3)=2,D(4)=9
全錯的坐法有D(5)=4*(2+9)=44種
只有一人坐對號碼的有5*D(4)=5*9=45種
只有二人坐對號碼的有C(5,2)*D(3)=10*2=20種
則至多有兩個號碼一致的坐法種數為44+45+20=109種

關於錯排的問題,詳見:http://ke..com/view/668994.htm

③ 錯位重排公式1到9是什麼

錯排公式1到9的計算公式為D(n)=(n-1)*(D(n-1)+D(n-2)。

錯排問題,是組合數學中的問題之一。考慮一個有n個元素的排列,若一個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的一個錯排。

現代數學集合論中,元素是組成集的每個對象。換言之,集合由元素組成,組成集合的每個對象被稱為組成該集合的元素。例如:集合{1,2,3}中1,2,3都是集合的一個元素。

錯排公式

問題: 十本不同的書放在書架上。現重新擺放,使每本書都不在原來放的位置。有幾種擺法?

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

研究一個排列錯排個數的問題,叫作錯排問題或稱為更列問題。

錯排問題最早被尼古拉·伯努利和歐拉研究,因此歷史上也稱為伯努利-歐拉的裝錯信封的問題。這個問題有許多具體的版本,如在寫信時將n封信裝到n個不同的信封里,有多少種全部裝錯信封的情況?

又比如四人各寫一張賀年卡互相贈送,有多少種贈送方法?自己寫的賀年卡不能送給自己,所以也是典型的錯排問題。

簡化公式

錯排公式的原形為D(n) = n! (1/0! - 1/1! + 1/2! - 1/3! - ..... + (-1)^n/n!),當n很大時計算就很不方便。一個供參考的簡化後的公式是D(n) = [n!/e+0.5] ,其中e是自然對數的底,[x]為x的整數部分。

證明:

由於1/e = e^(-1) = 1/0! - 1/1! + 1/2! - 1/3! - ..... + (-1)^n/n! + Rn(-1),

其中Rn(-1)是余項,等於(-1)^(n+1) * e^u / (n+1)!,且u∈(-1, 0).

所以,D(n) = n! * e^(-1) - (-1)^(n+1) * e^u / (n+1), u∈(-1, 0).

而|n! Rn| = |(-1)^(n+1) * e^u / (n+1)| = e^u / (n+1) ∈ (1/[e(n+1)], 1/(n+1)),可知即使在n=1時,該余項(的絕對值)也小於1/2。

因此,無論n! Rn是正是負,n! / e + 1/2的整數部分都一定與M(n)相同。

對於比較小的n,結果及簡單解釋是:

D(0) = 0(所有的元素都放回原位、沒有擺錯的情況)

D(1) = 0(只剩下一個元素,無論如何也不可能擺錯)

D(2) = 1(兩者互換位置)

D(3) = 2(ABC變成BCA或CAB)

D(4) = 9

D(5) = 44

D(6) = 265

D(7) = 1854

D(8) = 14833

D(9) = 133496

D(10) = 1334961

以上內容參考網路:錯排公式

④ 錯排公式的遞推的推導錯排公式

當n個編號元素放在n個編號位置,元素編號與位置編號各不對應的方法數用D(n)表示,那麼D(n-1)就表示n-1個編號元素放在n-1個編號位置,各不對應的方法數,其它類推.
第一步,把第n個元素放在一個位置,比如位置k,一共有n-1種方法;
第二步,放編號為k的元素,這時有兩種情況:⑴把它放到位置n,那麼,對於剩下的n-1個元素,由於第k個元素放到了位置n,剩下n-2個元素就有D(n-2)種方法;⑵第k個元素不把它放到位置n,這時,對於這n-1個元素,有D(n-1)種方法;
綜上得到
D(n) = (n-1) [D(n-2) + D(n-1)]
特殊地,D(1) = 0, D(2) = 1.
下面通過這個遞推關系推導通項公式:
為方便起見,設D(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!
因此
D(n) = n! [(-1)^2/2! + … + (-1)^(n-1)/(n-1)! + (-1)^n/n!].
此即錯排公式。

⑤ 錯排公式

錯排公式中的n是指的錯排數,所以把n-k替換原公式中的n就行了
m(n-k)=(n-k-1)[m(n-k-2)+m(n-k-1)]

⑥ 排列組合中2,3,4,5,6的錯排各是多少

一個元素的錯排為0個。兩個元素的錯排為1個,三個元素的錯排為2個,四個元素的錯排為9,五個元素的錯排為44。

錯排具有簡單的計算公式:D(n) = (n-1) [D(n-2) + D(n-1)]

計算過程如下:

D(1)=0
D(2)=1
D(3)=2(0+1)=2
D(4)=3(2+1)=9
D(5)=4(9+2)=44

(6)c語言的錯排公式擴展閱讀:

用容斥原理推出錯排公式:

正整數1, 2, 3, ……, n的全排列有 n! 種,其中第k位是k的排列有 (n-1)! 種,由於所求的是錯排的種數,所以應當減去這些排列;但是此時把同時有兩個點放對位置的排列多排除了一次,應補上;在補上時,把同時有三個數不錯排的排列多補上了一次,應排除;……;繼續這一過程,得到錯排的排列種數為

D(n) = n! - n!/1! + n!/2! - n!/3! + … + (-1)^n*n!/n! = ∑(k=2~n) (-1)^k * n! / k!,

即D(n) = n! [1/0! - 1/1! + 1/2! - 1/3! + 1/4! + ... + (-1)^n/n!].

其中,∑表示連加符號,k=2~n是連加的范圍;0! = 1,可以和1!相消。

參考資料來源:網路-錯排公式

⑦ 請大神告訴我排列組合中2,3,4,5,6的錯排各是多少.

錯排公式為:
D(n) = (n-1) [D(n-2) + D(n-1)]
5個元素的錯排數計算:
D1=0
D2=1
D3=2(0+1)=2
D4=3(2+1)=9
D5=4(9+2)=44

⑧ C語言:某人寫了n封信和n個信封,如果所有的信都裝錯了信封。求所有的信都裝錯

這個是錯排公式
h[0]=1
h[1]=0
h[i]=(i-1)*h[i-1]+h[i-2];

⑨ C語言--8人互送禮物有多少種送法

本來就是用數學方法的,叫錯排公式,是一個遞推的公式
基本形式:d[1]=0; d[2]=1
遞歸式:d[n]= (n-1)*( d[n-1] + d[n-2])