国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

錯排的遞推公式及推導

2019-11-14 12:49:45
字體:
來源:轉載
供稿:網友

f(n)=(n-1)*(f(n-2)+f(n-1));

顏書先生《“裝錯信封問題”的數學模型與求解》一文(見《數學通報》 2000 年第 6 期 p.35 ),給出了該經典問題的一個模型和求解公式:

編號為 1 , 2 ,……, n 的 n 個元素排成一列,若每個元素所處位置的序號都與它的編號不同,則稱這個排列為 n 個不同元素的一個錯排。記 n 個不同元素的錯排總數為 f(n) ,則

f(n) = n![1-1/1!+1/2!-1/3!+……+(-1)^n*1/n!]( 1 )

本文從另一角度對這個問題進行一點討論。

1. 一個簡單的遞推公式

n 個不同元素的一個錯排可由下述兩個步驟完成:

第一步,“錯排” 1 號元素(將 1 號元素排在第 2 至第 n 個位置之一),有 n - 1 種方法。

第二步,“錯排”其余 n - 1 個元素,按如下順序進行。視第一步的結果,若 1 號元素落在第 k 個位置,第二步就先把 k 號元素“錯排”好, k 號元素的不同排法將導致兩類不同的情況發生:( 1 ) k 號元素排在第 1 個位置,留下的 n - 2 個元素在與它們的編號集相等的位置集上“錯排”,有 f(n -2) 種方法;( 2 ) k 號元素不排第 1 個位置,這時可將第 1 個位置“看成”第 k 個位置,于是形成(包括 k 號元素在內的) n - 1 個元素的“錯排”,有 f(n - 1) 種方法。據加法原理,完成第二步共有 f(n - 2)+f(n - 1) 種方法。

根據乘法原理, n 個不同元素的錯排種數

f(n) = (n-1)[f(n-2)+f(n-1)] (n>2) 。 ( 2 )

Ps: HDOJ-1645

#include<iostream>  #include<string.h>  #include<math.h>  #include<queue>  using namespace std;  int n,i;  long long s[27];  int main()  {       s[0]=0; s[1]=0; s[2]=1;      for (i=3;i<=20;i++)         s[i]=(i-1)*(s[i-1]+s[i-2]);           while (cin>>n)         cout<<s[n]<<endl;        return 0;  }  


上一篇:list容器

下一篇:golang基礎

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 壤塘县| 化州市| 甘德县| 剑河县| 永和县| 昌宁县| 定陶县| 巫溪县| 嘉祥县| 剑阁县| 西城区| 蓬莱市| 礼泉县| 个旧市| 新沂市| 苍溪县| 绿春县| 宜川县| 波密县| 中牟县| 周口市| 米易县| 措美县| 铜梁县| 湖北省| 交城县| 蓝山县| 荣成市| 徐州市| 榕江县| 搜索| 望谟县| 宜丰县| 乌审旗| 和平县| 洛川县| 武定县| 富顺县| 池州市| 洛浦县| 平乐县|