神、上帝以及老天爷(错位排序)
Description
协会活动为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中; 然后,待所有字条加入完毕,每人从箱中取一个字条; 最后,如果取得的字条上写的就是自己的名字,那么“恭喜你,中奖了!” 大家可以想象一下当时的气氛之热烈,毕竟中奖者的奖品是大家梦寐以求的Twins签名照呀!不过,正如所有试图设计的喜剧往往以悲剧结尾,这次抽奖活动最后竟然没有一个人中奖! 我的神、上帝以及老天爷呀,怎么会这样呢? 不过,先不要激动,现在问题来了,你能计算一下发生这种情况的概率吗? 不会算?难道你也想以悲剧结尾?!
Input
输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(1< n<=20),表示参加抽奖的人数。
Output
对于每个测试实例,请输出发生这种情况的百分比,每个实例的输出占一行, 结果保留两位小数(四舍五入),具体格式请参照sample output
Sample Input
1 2
Sample Output
50.00% 解题思路:这是一个错位排序的问题,在这里谢谢关于错位排序的原理以及思路。
错位排列:
第一步,错排第一号元素(将第一号元素排在k位置),有n-1种方法。
第二步,错排其余n-1个元素。紧接第一步的结果,若第一号元素落在第k个位置,第二步就先把K排好
1、 k 号元素排在第1个位置,留下的 n - 2 个元素在与它们的编号集相等的位置集上“错排”,有 f(n -2) 种方法;
2、 k 号元素不排第 1 个位置,这时可将第 1 个位置“看成”第 k 个位置(也就是说本来准备放到k位置为元素,可以放到1位置中),于是形成(包括 k 号元素在内的) n - 1 个元素的“错排”,有 f(n - 1) 种方法。据加法原理,完成第二步共有 f(n - 2)+f(n - 1) 种方法。
根据乘法原理, n 个不同元素的错排种数
错排公式 f(1)=0,f(2)=1;f(n)=(n-1)(f(n-1)+f(n-2))
1 #include <iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 #define maxn 200 8 int main() 9 { 10 int t,n; 11 double a[maxn]; 12 a[1]=0;a[2]=1; 13 for(int i=3;i<=22;i++) 14 { 15 a[i]=(i-1)*(a[i-1]+a[i-2]); 16 } 17 scanf("%d",&t); 18 while(t--) 19 { 20 double sum=1; 21 scanf("%d",&n); 22 23 for(int i=1;i<=n;i++) 24 sum*=i; 25 printf("%.2lf%%\n",a[n]/sum*100); 26 } 27 }
转载于:https://www.cnblogs.com/wkfvawl/p/8998468.html
神、上帝以及老天爷(错位排序)相关推荐
- 【HDU 2048】神、上帝以及老天爷(错位排序)
神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU2048 神、上帝以及老天爷【递推】
神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 神、上帝以及老天爷(递推公式)
神.上帝以及老天爷(递推公式) Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动 ...
- HDU神、上帝以及老天爷(错排公式)
神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- hdu 2048 错排公式 神、上帝以及老天爷
神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDUOJ 2048 - 神、上帝以及老天爷(错排公式)
原题: Problem Description -- 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中: 然后,待所有字条加入完毕,每人从箱中取一个字条: 最后,如果取得的字条上写的就是 ...
- O - 神、上帝以及老天爷
HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己 ...
- HDU2048神、上帝以及老天爷 (错排公式)
错排问题,又称更列问题,是组合数学中的问题之一.对于它的研究最早可以追溯到十八世纪,当时他被数学家尼古拉·伯努利和欧拉研究,因此在历史上也被称为伯努利--欧拉的错装信封问题.这个问题有许多具体的版本, ...
- One Day One Step 之全错位排序
One Day One Step 之全错位排序 今天做了一道题,是关于全错位排序的.在高中的时候,对排列组合一直很头痛,所以今天趁这个机会,好好学习学习! 先来看一下题目吧! 神.上帝以及老天爷 ...
最新文章
- GPU与CPU交互技术
- 5 网络层----IP协议相关技术
- iextensionunit类_Java ICompilationUnit.reconcile方法代码示例
- boost::core模块实现分配const指针
- Log4Net简单使用
- 解决java无法切分字符串,.split()无效
- java总结第四次//常用类
- [转]Zend Framework + Smarty 应用实例
- base64 convert to file
- scala 函数中嵌套函数_Scala函数–声明,定义,调用和嵌套函数
- POJ-1426-Find The Multiple
- 将GridView数据导出到Excel实现
- IIS、MySQL、Redis环境搭建
- CAN FD协议简介
- python3 yield from用法
- vue项目手机端适配
- ROS学习笔记6 URDF建立机器人模型(以双轮差速小车为例)
- 如何用Scrum做变革管理的落地实施
- 18-《致橡树》-舒婷
- 上海市大数据技术与应用创新中心成立
热门文章
- 重构 — 勿以善小而不为
- python的pygame模块详解_python游戏模块学习之pygame常规操作讲解
- [bzoj5050][线段树]建造摩天楼
- 进化的学习曲线:方差与泛化误差
- Android蓝牙开发系列文章-玩转BLE开发(一)
- 打开计算机窗口的快捷键是什么,打开多个窗口,用哪个快捷键可以将窗口切换?...
- Java并发编程AQS详解
- 远程控制电脑软件全方位测评,远程控制工具哪家强
- 2023 QQ强制聊天加好友临时会话接口跳转单页HTML源码
- 维视智造定义“工业机器视觉检测大脑”VisionBank AI 视觉软件发布会圆满召开