錯排公式簡單應用

2022-09-13 17:57:14 字數 1317 閱讀 9591

time limit : 2000/1000ms (j**a/other)   memory limit : 65536/32768k (j**a/other)

total submission(s) : 5   accepted submission(s) : 3

font: times new roman | verdana | georgia

font size: ←

→hdu 2006'10 acm contest的頒獎晚會隆重開始了!

為了活躍氣氛,組織者舉行了乙個別開生面、獎品豐厚的**活動,這個活動的具體要求是這樣的:

首先,所有參加晚會的人員都將一張寫有自己名字的字條放入**箱中;

然後,待所有字條加入完畢,每人從箱中取乙個字條;

最後,如果取得的字條上寫的就是自己的名字,那麼「恭喜你,中獎了!」

大家可以想象一下當時的氣氛之熱烈,畢竟中獎者的獎品是大家夢寐以求的twins簽名照呀!不過,正如所有試圖設計的喜劇往往以悲劇結尾,這次**活動最後竟然沒有乙個人中獎!

我的神、上帝以及老天爺呀,怎麼會這樣呢?

不過,先不要激動,現在問題來了,你能計算一下發生這種情況的概率嗎?

不會算?難道你也想以悲劇結尾?!

輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含乙個整數n(1對於每個測試例項,請輸出發生這種情況的百分比,每個例項的輸出佔一行, 結果保留兩位小數(四捨五入),具體格式請參照sample output。

1

2

50.00%

關鍵是推公式此題相似於裝信封問題:

[問題描述]某人寫了n封信和n個信封,如果所有的信都裝錯了信封。求所有的信都裝錯信封共有多少種不同情況。 

[問題分析]

1、當有n封信的時候,前面n-1封信可以有n-1或者n-2封錯裝;

2、前者,對於每一種錯裝,可以從n-1封信中任意取一封和第n封錯裝,故=f(n-1)*(n-1);

3、後者,只能是沒裝錯的那封信和第n封信交換信封,沒裝錯的那封信可以是前面n-1封信中的任意乙個,故= f(n-2) (n-1)

得到如下遞推公式:

基本形式:f[1]=0;   f[2]=1 遞迴式:f[n]= (n-1)*( f[n-1] + f[n-2])

有了這道題的基礎此題便相當簡單了

ac**:
#include

__int64 lmx(__int64 n)

__int64 fan(__int64 n)

int main()

return 0;

}

錯排公式的推導及應用

同時發布在我的個人部落格 以下是原文 考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排,n個元素的錯排記為d n 下面就是求出d n 為多少中排列。首先我們拿第乙個元素的放置來理解一下這個過程 把元素1放在除自己原來的位置以外的位置,共有 ...

遞迴 錯排公式

這個問題推廣一下,就是錯排問題,是組合數學中的問題之一。考慮乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。n個元素的錯排數記為d n 研究乙個排列錯排個數的問題,叫做錯排問題或稱為更列問題。錯排問題最早被尼古拉 伯努利和尤拉研究,因此歷史上...

數論 錯排公式

1.定義 乙個有n個元素的排列,若乙個排列中所有的元素都不在自己原來的位置上,那麼這樣的排列就稱為原排列的乙個錯排。n個元素的錯排數記為d n 2.推導 遞推 首先將第乙個元素錯排,假設將第乙個元素放到第k位,那麼對於第k位的元素,有兩種情況 1.k放在第1位,此時相當於對處第1位與第k位的n 2個...