错排问题 :hdu2048

错排问题 #include<cstdio> #include<cmath> const double e=exp(1.0);//exp(1.0)是e=2.71….. double p[21];//多一位存放'\0' int main() { double temp=1.0; int t,n,i; for(i=2;i<=20;i++) { ... 阅读详情

错排问题:

问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法?
这个问题推广一下,就是错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题。

当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示。
接下来推导递推式:
第一步:将第n本书放在前面n-1个位置中的任意一个,有n-1种放法。
第二步:假如第n本书放在了k位置,则现在将原本在k位置的书拿起。 接下来有两种选择,一是放到n位置,此时除了n和k之外还有n-2个数,所以有D(n-2)种放法。
二是放到其它位置,此时,将n位置看成新的“k”位置! 就像k书不能放到k位置一样,现在k书不能放到n位置。故有D(n-1)种。
所以递推式 D(n) = (n-1) * (D(n-1)+D(n-2))

题目:
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<iomanip>
using namespace std;
long long  jiecheng(int n)
{
	long long sum = 1;
	for(int i=1;i<=n;i++){
		sum*=i;
	}
	return sum;
}
int main()
{
	int T;
	cin >> T;
	double ans[25];
	while(T--){
		int n;
		cin >> n;
		ans[0] = 0;
		ans[1] = 0;
		ans[2] = 1;
		for(int i=3;i<=n;i++){
			ans[i] = (i-1)*(ans[i-1]+ans[i-2]);
		}
		cout << fixed << setprecision(2) << ans[n]*100.0/jiecheng(n) << '%' << endl;
	}
}


问题推广:
对于n本书有m本是错排的情况有多少种?
先从n本里挑m本,然后乘上m的错排。

华为od 面试八股文_前端_03_含答案 阅读详情

相关推荐

基于Simulink的输入-输出线性化精确转矩控制

本文详细介绍了基于Simulink的永磁同步电机(PMSM)输入-输出线性化(IOL)精确转矩控制方法。针对传统解耦控制在非线性转矩特性下的局限性,通过建立PMSM非线性状态空间模型,设计IOL控制器将系统转化为线性输入-输出映射。文章包含系统原理推导、Simulink建模步骤、参数整定方法和仿真结果分析,验证了IOL在高动态、宽速域工况下的优越性能(转矩误差降低90%)。最后提出了工程实现要点和扩展应用方向,为开发高精度电机驱动系统提供了实用指导。

xiaoheshang_123的博客 304

HDU-2048(错排问题)

神、上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46467 Accepted Submission(s): 18916 Problem Descri...

HJM916577的博客 255

深入分析大众点评 Ajax 接口:直接请求 JSON 数据高效获取评论

大众点评网站采用前后端分离架构,通过Ajax接口动态加载数据。按F12打开开发者工具,切换到Network(网络)面板。实际环境中,我们需要使用Python重现这一加密逻辑。查看请求响应,寻找包含评论数据的JSON接口。参数是大众点评的反爬机制核心,需要特别处理。:尊重网站的robots.txt文件规定。:仅将数据用于合法合规的研究和分析目的。:不侵犯大众点评的商业秘密和知识产权。打开大众点评网站,进入任意商户页面。:对采集到的用户信息进行脱敏处理。:避免对目标网站造成过大负担。

Z_suger7的博客 1582

hdu 2048 神、上帝以及老天爷 (错排公式,递推)

神、上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 22801    Accepted Submission(s): 9582 Problem Description HDU 2006'10 ACM

24小时的程序员 750

最新测算源码PHP算命源码-风水八字-八字起名-塔罗牌占卜

未来,随着技术的发展和用户需求的变化,我们可以继续对系统进行升级和优化,以满足更多用户的需求和期望。数据库设计:创建一个名为bazi的数据库表,包含以下字段:id(自增ID)、name(姓名)、sex(性别)、birth_date(出生日期)、birth_time(出生时间)、bazi(八字结果)。数据库设计:创建一个包含塔罗牌信息的数据库表,如tarot_cards,包含字段:id(塔罗牌ID)、name(塔罗牌名称)、meaning(塔罗牌含义)等。根据操作系统的不同,PHP的安装方法会有所不同。

shanbeizi的博客 2417

DRAM知识整理系列(三):部分时序参数整理

一、tCL-tRCD-tRP-tRAS(第一时序) 内存是根据行和列寻址的,当请求触发后,最初是tRAS(Active to precharge Delay),预充电后,内存才真正开始初始化RAS(Row Address Strobe)。一旦tRAS激活后,RAS开始进行需要数据的寻址。首先是行地址,然后初始化tRCD(RAS to CAS Delay),周期结束,接着通过CAS(Column Address Strobe)访问所需数据的十六进制地址。其中,从CAS开始到CAS结束,就是CAS延迟(即t

不吃鱼的猫的博客 7万+

信封问题加强版

Maybe some problems is difficult .Do your best ! Everything is possible. My blog : http://acm.awaysoft.com/Problem H Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Oth

hqd_acm的专栏 994

个人信息保护合规审计人员(高级)能力考核试卷+面试模拟

《个人信息保护合规审计考试与面试指南》 摘要:本文提供个人信息保护合规审计考试及面试的全面指导。考试采用闭卷笔试形式,满分100分,合格线75分,时长120分钟,包含单选、多选、判断题及综合案例分析题。内容涵盖《个人信息保护法》核心条款、审计程序、风险评估等实务要点。面试环节采用情景模拟方式,重点考察应试者在压力下处理审计独立性、客户关系与监管要求的平衡能力,以及应对数据泄露等突发事件的处置流程。案例题聚焦大型互联网平台的数据收集、共享、跨境传输等高风险环节的合规审计,要求设计完整的审计方案框架。面试评分标

qq_41525079的博客 1142

HDU 2048 神、上帝以及老天爷

神、上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17226 Accepted Submission(s): 7336 Problem Description HDU 2006'10 ACM contest的颁

公众号:ByteCode 1万+

FAST-LIO2:论文和算法解析

本文介绍了FAST-LIO2算法:一种快速、鲁棒、通用的激光雷达-惯性里程计框架。FAST-LIO2基于高效的紧密耦合迭代卡尔曼滤波器,具有两个关键的新颖之处,可实现快速,稳健和准确的激光雷达导航(和测绘)。第一种方法是直接将原始点注册到地图上然后更新地图,而不提取特征。这样可以利用环境中的细微特征,从而提高准确性。消除手工设计的特征提取模块,也使其能够适应不同扫描模式的新兴激光雷达;

超爱吃小蛋糕的66的博客 1万+

c语言版数据结构课程设计 学生成绩管理系统

此学生成绩管理系统完成15项功能,是我经过很多次的修改得到的。花费时间不短,功能齐全,主要完成了:输入,输出,插入,修改,删除,查询,读取文件,写入文件,复制文件,建立索引,显示各种情况下的信息,追加学生信息等等功能。一共15项。   代码如下: // shujujiegou.cpp : 定义控制台应用程序的入口点。///**本程序采用数组链表形式,原因:数组查询速度快,数组也能实现动态存储

Java 1万+

十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法?

第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法; 第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,对于剩下的n-2个元素,就有M(n-2)种方法;2,不把它放到位置n,这时,对于这n-1个元素,有M(n-1)种方法;   综上得到   M(n)=(n-1)[M(n-2)+M(n-1)]   M(1)=0,M(2)=1

yiranlun3的专栏 5048

将Dify平台开发的工作流集成到Open WebUI中

将Dify开发的工作流集成到Open WebUI是一个能够显著增强AI应用交互能力和业务逻辑深度的有效途径。其核心在于通过API建立两者间的通信桥梁,并确保API在格式、协议和行为上的一致性,特别是向OpenAI Chat API规范看齐。最简单直接的路径是利用Dify的“对话型”或“Agent型”应用,这类应用的API设计更倾向于满足Open WebUI这类聊天前端的期望。然而,面对复杂的现实场景,直接的完美兼容并非总是唾手可得。

形上得其象,形下合于数;阴阳自济,玄理自明。 2030

【递推】错排问题:HDU-2048 神、上帝以及老天爷

神、上帝以及老天爷 Problem Description HDU 2006’10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中; 然后,待所有字条加入完毕,每人从箱中取一个字条; 最后,如果取得的字条上写的就是自

Floraqiu的博客 739

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hdu 2048

hdu 2048 PS:WA了两次...主要是没注意到fac的大小好像只能写到9...要用long long型递归求阶乘... 然后就是错排公式...百度下.. 代码: #include "stdio.h"long long dp[30];long long fac[30];int main(){int n,a,i;dp[0]=0;dp[1]...

woshilishu的博客 212

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

关于错排问题 hdu2048

http://acm.hdu.edu.cn/showproblem.php?pid=2048 首先我们来找一下规律 枚举法 当只有一个人的时候 就不可然排错   所以D1=0   ; 当有二个人的时候只有1种情况排错a占了b的位置,b占了a的位置      D2=1。 当有三个人的时候 一个有6种方法排列  但是所有人全都排错的只有2中 b a c 和c a b     D3=2.

aibianchendewo的专栏 834

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

HDU 2048 2049 2068 错排题

2048 神、上帝以及老天爷 Problem Description   HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中; 然后,待所有字条加入完毕,每人从箱中取一个字条; 最后,如果取得的

vsooda的专栏 3020

HDUOJ2048——错排问题&C语言的四舍五入

神、上帝以及老天爷 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中; 然后,待所有字条加入完毕,每人从箱中取一个字条; 最后,如果取得的字条上写的就是自己的名字,那么“恭喜你,中奖...

光阴跑走的博客 972

错排问题-hdu2048

错排介绍 n个有序的元素有n!种排列方式,如果一个排列使得所有元素都不在原来的位置上的排列就叫错排。 错排推导 (1)错排有两种方法进行计算,一种是基于容斥定理最后得出来的一个阶乘的计算式,计算机对于阶乘非常的不友好,因此第一种很少使用。 (2)由于阶乘的原因,我们不得不再寻找一种计算错排Dn的方法。 首先我们以1,2,3,4的错排为例子, (1,2)的错排唯一,是(2,1) (1,2,3) 的错...

qq_43227036的博客 317

HDU--2048 错排问题

错排问题HDU     思路分析 甲,乙,丙,丁,戊,五个人各自分别制作了一份新年贺卡,然后各自送给这五个人中的一个而不是自己,且最   后谁都能得到贺卡,共有多少种送出的方法?   不妨从1个人开始谈起,如果是一个人制作了一份新年贺卡,那么他无法送给别人,也不能给自己,所以是0种   方法,如果是两个人,那么他们可以互相交换,1种方法,三个人暂且不谈,下面推导递推关系  ...

qq1169091731的博客 1139

如何理解错排问题

一、什么是错排问题 举例: 十本不同的书放在书架,现重新摆放,使得每本书都不在原来的位置上,有几种摆法? 一个人给十个同学写信,但他把所有的信都装错了信封,问共有多少种错误的方式? 以上问题推广,就是错排问题。 一个n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的一个排列就称为原排列的一个错排。而研究一个排列的错排个数的问题,就称为错排问题(或称为更列问题)。 二、错排公式...

柠檬超级酸 862

错排公式详释,HDU1465,HDU4535,HDU2048,HDU2049

定义: 错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。n个元素的错排数记为D(n)。 经典的递推: 递归关系式为: D(n)=(n-1)(D(n-1)+D(n-2)) D(1)=0,D(2)=1 可以得到: 错排公式为 f(n) = n![1-1/1!+1/2!-1/3!+……+(-1)

AC_Dreameng 889

递推题——错排公式

这几天都做到了递推题,而且都用到了错排公式,所以在此记一下(不然我脑子里根本记不住,蠢哭...) 以HDU 2048为例,请看题: em...由于本人一点也不擅长递推题,所以直接把别人的分析抄上来吧....(侵权即删) 若有n张票,则其所有的排列一共有= n! 种排列方式。即所求问题的分母是n! 现在的问题就是n张票的错排方式有多少种? 1.首先我们考虑如果n-1个人拿的都不是自...

hjl_heart的博客 573

HDU 2048错排初阶

HDU 2048 第一次出现错排的概念 题目: 像这种看似可以用排列组合解决的问题其实很复杂,一般还是要找出几项之间的递推关系 什么叫做错排? n个有序的元素应有n!个不同的排列,如若一个排列使得所有的元素不在原来的位置上,则称这个排列为错排;有的叫重排 N张字条的所有可能排列自然是N!(分母)。 现在的问题就是求N张字条的错排数f(N)(分子)。 首先我们考虑,如果前面N-1个人拿的都不是自己的...

qq_45651829的博客 347

错排问题hdu2048

神、上帝以及老天爷 Problem Description HDU 2006’10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中; 然后,待所有字条加入完毕,每人从箱中取一个字条; 最后,如果取得的字条上写的就是自己的名字,那么“恭喜你,中奖了!...

weixin_43736492的博客 515

HDU 2048 神、上帝以及老天爷( 错排 )

链接:传送门 思路:错排模板,典型错排问题,n个人所有人都不会抽到自己的方案数为 Dn = (n-1) * (Dn-1 + Dn-2) /************************************************************************* > File Name: hdu2048.cpp > Author: ...

dijingzhou4259的博客 96
上一篇: hdu2045
下一篇: 求某个数n的某一个因子的个数 (高斯取整函数思想)
mwhybmj
博客等级 码龄10年 8粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值