错排问题
来源:互联网 发布:哪里卖淘宝号 编辑:程序博客网 时间:2024/05/14 22:22
#include<stdio.h>
int main()
{
int i,C,t,n;
double c,b;
long long a[21]={0,0,1,2};
for(i=4;i<=20;i++)
a[i]=(a[i-1]+a[i-2])*(i-1);
scanf("%d",&C);
for(t=1;t<=C;t++)
{
scanf("%d",&n);
for(b=i=1;i<=n;i++)
{
b=b*i;
}
c=a[n]/b*100;
printf("%.2lf%%\n",c);
}
return 0;
int main()
{
int i,C,t,n;
double c,b;
long long a[21]={0,0,1,2};
for(i=4;i<=20;i++)
a[i]=(a[i-1]+a[i-2])*(i-1);
scanf("%d",&C);
for(t=1;t<=C;t++)
{
scanf("%d",&n);
for(b=i=1;i<=n;i++)
{
b=b*i;
}
c=a[n]/b*100;
printf("%.2lf%%\n",c);
}
return 0;
}
错排问题主要是递推关系,首先与百度百科一样,有n个位置放n个数,第n个数可以放在1-n-1这n-1个位置上,设放到k上,则第k个数有两种可能一是放到n上,此时剩下n-2个数,此时重复了最开始的情况只不过n个数变为了n-2,因此这里错排的种数以递推关系表示,不再继续,表示为a[n-2],若k不赋到n上,此时现将k排到第n个数的位置上,第k个位置与第n个数一起拿掉此时有n-1个数,再重复开始时的操作,因此以递推关系a[n-1]表示,则a[n]=(n-1)*(a[n-1]+a[n-2])
容斥法推错排公式仍为理解,需加油。
另外,要输出%,若前面有对变量的格式控制(%d……)则以%%输出,若无则可以%%,\%输出
0 0
- 错排问题
- 错排问题
- 错排问题
- 错排问题
- 错排计数问题
- 错排问题
- 错排 问题
- 错排问题:
- 错排问题
- 错排问题
- 错排问题
- 浅析错排问题
- 错排问题
- 错排问题--十二金钗
- 错排问题
- 错排问题
- 错排问题
- 【转载】错排问题
- 浅析怎样使用yum安装CDH Hadoop集群
- UIView基础知识
- 设置Activity全屏与不全屏
- 面试:十题大数据处理
- 高并发量网站解决方案
- 错排问题
- MySQL故障-Slave_SQL_Running: No
- scala 遍历目录 空指针异常和OutOfMemoryError:
- Python 调试工具 PDB
- 第一章统计学习方法概论
- Django
- Swift 学习笔记(二)Ios9下访问http://
- JAVA中的Static(静态变量、静态方法、静态代码块)
- 浅析App Webview与内嵌web实现交互