当前位置:首页 » 编程语言 » 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])