错排问题,又称更列问题,是组合数学中的问题之一。对于它的研究最早可以追溯到十八世纪,当时他被数学家尼古拉·伯努利和欧拉研究,因此在历史上也被称为伯努利--欧拉的错装信封问题。这个问题有许多具体的版本,比如在写信时讲n封信装到n个不同的信封里,有多少种全部装错信封的情况?再比如n个人各写一张贺卡相互赠送,有多少种赠送方法?这些经典的题目都是典型的错排问题。

首先,对于D(n),有1~n这样n个元素错排,所以对于第一个元素①,它现在可能的位置有(n-1)个,倘若它在第k个元素的位置上,对于第k个元素而言,它所在的位置就有两种可能—第一种,它处在非第一个元素①位置上,所以对于接下来的排列就相当于是n-1个元素的错排,即D(n-1);第二种,它处在第一个元素①的位置上,所以在排列D(n)中有两个元素找到了位置,那么接下来的队列就相当于是n-2个元素的错排。因此,对于D(n)都有D(n)=(n-1)*(D(n-1)+D(n-2))【特殊的,D(1)=0,D(2)=1】。

Font Size: ← →

Problem Description

HDU 2006'10 ACM contest的颁奖晚会隆重开始了!
为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的:

首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中;
然后,待所有字条加入完毕,每人从箱中取一个字条;
最后,如果取得的字条上写的就是自己的名字,那么“恭喜你,中奖了!”

大家可以想象一下当时的气氛之热烈,毕竟中奖者的奖品是大家梦寐以求的Twins签名照呀!不过,正如所有试图设计的喜剧往往以悲剧结尾,这次抽奖活动最后竟然没有一个人中奖!

我的神、上帝以及老天爷呀,怎么会这样呢?

不过,先不要激动,现在问题来了,你能计算一下发生这种情况的概率吗?

不会算?难道你也想以悲剧结尾?!

Input

输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(1<n<=20),表示参加抽奖的人数。

Output

对于每个测试实例,请输出发生这种情况的百分比,每个实例的输出占一行, 结果保留两位小数(四舍五入),具体格式请参照sample output。

Sample Input

1
2

Sample Output

50.00%
#include<iostream>
#include<cstdio>
using namespace std;
#define maxn 200
int main()
{int t,n;double a[maxn];a[1]=0;a[2]=1;for(int i=3;i<=22;i++)a[i]=(i-1)*(a[i-1]+a[i-2]);cin>>t;while(t--){double sum=1;cin>>n;for(int i=1;i<=n;i++)sum*=i;printf("%.2lf%%",a[n]/sum*100);cout<<endl;}return 0;
} 

HDU2048神、上帝以及老天爷 (错排公式)相关推荐

  1. HDU神、上帝以及老天爷(错排公式)

    神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  2. HDUOJ 2048 - 神、上帝以及老天爷(错排公式)

    原题: Problem Description -- 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中: 然后,待所有字条加入完毕,每人从箱中取一个字条: 最后,如果取得的字条上写的就是 ...

  3. 浅谈错排公式的推导及应用

    近期学弟在HDU刷题时遇到了关于错排公式的一些问题,我作为过来人就写这篇博客来指导他们~~~ 错排的定义:一段序列中一共有n个元素,那么可知这些元素一共有n!种排列方法.假如在进行排列时,原来所有的元 ...

  4. HDU2049 组合数学 错排公式

    国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的:  首先,给每位新娘打扮得几乎一模一 ...

  5. HDOJ 1465 不容易系列之一 【错排公式 递推】

    HDOJ 1465 不容易系列之一 [错排公式 递推] 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1465 题目就是说n个信封全部装错信的可能性是多 ...

  6. 关于错排公式的推导与应用

    错排问题,又称更列问题,是组合数学中的问题之一.对于它的研究最早可以追溯到十八世纪,当时他被数学家尼古拉·伯努利和欧拉研究,因此在历史上也被称为伯努利--欧拉的错装信封问题.这个问题有许多具体的版本, ...

  7. 错排公式的理解与推导(转载)

    转自: ①:https://www.cnblogs.com/ECJTUACM-873284962/p/7620370.html ②:https://www.cnblogs.com/c129940122 ...

  8. 错排公式 ——递推与通项公式

    错排公式 一.定义: 错排问题,是组合数学中的问题之一.考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排. n个元素的错排数记为D(n).研 ...

  9. 数学知识--错排公式

    错排公式 核心递推公式: D(n) = (n-1) [D(n-2) + D(n-1)] 特殊地,D(1) = 0, D(2) = 1. 问题: 十本不同的书放在书架上.现重新摆放,使每本书都不在原来放 ...

  10. 错排问题(错排公式)

    错排问题: n个人各写一张贺卡,有多少种赠送方式?(即满足每个人拿到的都不是自己写的贺卡) 错排公式: D(n)=(n-1)*( D(n-1) + D(n-2) ),易得 D(1)=0 , D(2)= ...

最新文章

  1. ORACLE11g 前期安装环境配置
  2. Spring Boot 学习(1)
  3. CICD流程设计及openshift与k8s的命令对比
  4. vim 正则非贪婪模式
  5. Installation error: INSTALL_FAILED_UID_CHANGED
  6. socket.io php 聊天室,WebSocket学习(一)——基于socket.io实现简单多人聊天室
  7. vue合并表格excel导出_vue export2Excel 怎么导出一个 excel 同时里面有两个 sheet?
  8. Android基础 --- Widget
  9. Gson格式转换Integer变为Double类型问题解决
  10. 写给那些仍旧在公司混日子的人-周鸿祎
  11. Python 从入门到进阶
  12. Java代码实现SM2算法以及注意点总结(踩坑记录)
  13. 阿里云域名注册+服务器购买+备案教程(图文教程)
  14. [Excel] 数据透视图
  15. 使用xcelsius创建令人惊叹的幻灯片 --xcelsius入门
  16. 一壶浊酒尽余欢、今宵别梦寒!
  17. java对象流保存表格_使用java对象
  18. 到客户现场进行项目开发流程
  19. 学习写微信小程序(2)
  20. 微信小程序生态开发-组件注册

热门文章

  1. 硬件工程师面试集锦 模拟电路 数字电路 IC设计基础 单片机 信号与系统 DSP 嵌入式
  2. Windows Terminal 美化 / PowerShell 美化: oh-my-posh 主题安装和使用
  3. 【C语言】分段函数求值 控制输出格式 float精确到小数点后几位
  4. 顺丰同城入局洗衣行业 与浣洗合作提升用户体验
  5. call方法 java_webservice接口call调用方式
  6. Konva(一个HTML5 Canvas JavaScript 框架)快速入门
  7. MySQL查询所有父节点与所有子节点
  8. Python http +Post+ json请求
  9. firefox与IE对js和CSS的区别
  10. (译) Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.1绘制精灵