1至9的全排列中,至少有一个奇数在其自然位置上的排列有多少个
本题是组合数学中的错排问题的一个变形,可以采用容斥原理来解决.
1、
1~9的全排列中,奇数k排在第k位的排列方式一共有(9-1)!=8!种
1~9中一共有1、3、5、7、9这5个奇数,所以如果不考虑重复的话,一共有C(5,1)*(9-1)=5*8!种排列是至少有一个奇数在其自然位置上.
2、
但是上面的计算中显然重复的包含了有2、3、4、5个奇数同时在其自然位置上的排列.
所以根据容斥原理应该把这部分重复计算的值排除在外.
C(5,1)*(9-1)! -C(5,2)*(9-2)!+C(5,3)*(9-3)!-C(5,4)*(9-4)!+C(5,5)*(9-5)!
=C(5,1)*8! -C(5,2)*7!+C(5,3)*6!-C(5,4)*5!+C(5,5)*4!
= 5*8!-10*7!+10*6!-5*5!+4!
=157824
3、
我写了一个C程序来验证,如下
#include#define N 9
int Mark[N] = {0};
int Stack[N];
int count = 0;
void print()
{
\x09int i;
\x09for(i=0;i
\x09printf("\n");
}
void judge()
{
\x09int i;
\x09for(i=0;i
\x09\x09if(Stack[i]==i+1)
\x09\x09{
\x09\x09\x09count++;
\x09\x09\x09return;
\x09\x09}
\x09}
}
void rank(int m,int n)
{
\x09int i;
\x09if(n==0)
\x09{
\x09\x09judge();
\x09\x09return;
\x09}
\x09for(i=0;i
\x09\x09{
\x09\x09\x09Mark[i]=1;
\x09\x09\x09Stack[m]=i+1;
\x09\x09\x09rank(m+1,n-1);
\x09\x09\x09Mark[i]=0;
\x09\x09}
}
void main()
{
\x09rank(0,N);
\x09printf("count=%d\n",count);
}
结果表明数学计算是正确的.
有一句话说、有时一分钟短!有时一分钟长!你们怎么理解这句话!.补充!比如说在什么情况下说一分钟很长 2020-05-13 …
有关于万有引力的!已知一颗人造卫星在离地面高度等于地球半径的圆形轨道上运行,已知卫星的第一宇宙速度 2020-05-15 …
关于力的传播的一个问题1.假设有一根一光年长的棍子,有两个人站在两端,其中一人用力推一下棍子,另一 2020-05-17 …
“每的人都有他们自己的梦想,有的人想成为一位科学家,有的人想成为非常著名的流行歌手,但我的梦想就. 2020-06-07 …
1、一只篮子有一些果,取出它的一半又一个给第一个人,再取出其余的一半又二个给第二个人,最后把剩下的 2020-06-10 …
学校把新买的一批篮球分给每个班,如果每班分4个,那么剩9个,如果每班分6个,那么最后一班分到的球数 2020-06-10 …
我养的红鲤鱼为什么总死呢?我用的是一个玻璃缸,一共养四条鱼,空间看着也够大,水也是困好的,有水草, 2020-06-20 …
毅力,是千里大堤一沙一石的凝聚,一点点地累积,才有前不见头后不见尾的壮丽.的仿句!急毅力,是千里大 2020-06-22 …
关于菜根谭的.有妍必有丑为之对,我不夸妍,谁能丑我有妍必有丑为之对,我不夸妍,谁能丑我?有洁必有污 2020-06-23 …
帮写一个算法假设有两个按元素值递增有序排列的有序表A和B,均以单链表作存储结构,请编写算法利用A表 2020-07-13 …