c语言 错排公式 程序,错排公式 错排(加组合)
递推的方法推导错排公式 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-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
下面通过这个递推关系推导通项公式:
为方便起见,设M(k)=k!N(k), (k=1,2,…,n)
则N(1)=0,N(2)=1/2
n>=3时,n!N(n)=(n-1)(n-1)!N(n-1)+(n-1)!N(n-2)
即 nN(n)=(n-1)N(n-1)+N(n-2)
于是有N(n)-N(n-1)=-[N(n-1)-N(n-2)]/n=(-1/n)[-1/(n-1)][-1/(n-2)]…(-1/3)[N(2)-N(1)]=(-1)^n/n!
因此
N(n-1)-N(n-2)=(-1)^(n-1)/(n-1)!
N(2)-N(1)=(-1)^2/2!
相加,可得
N(n)=(-1)^2/2!+…+(-1)^(n-1)/(n-1)!+(-1)^n/n!
因此
M(n)=n![(-1)^2/2!+…+(-1)^(n-1)/(n-1)!+(-1)^n/n!]
可以得到
错排公式为M(n)=n!(1/2!-1/3!+…..+(-1)^n/n!)
#include
using namespace std;
long long a[25];
long long C(int n,int m)
{
long long i,s=1,s1=1;
for(i=1;i<=m;i++)
{
s=s*i;
s1=s1*(n-i+1);
}
return s1/s;
}
int main()
{
int t,n,m,i;
cin>>t;
a[1]=0;
a[2]=1;
for(i=3;i<=20;i++)
a[i]=(i-1)*(a[i-1]+a[i-2]);
while(t--)
{
cin>>n>>m;
cout<
}
}
c语言 错排公式 程序,错排公式 错排(加组合)相关推荐
- python创建数据库为什么只能有4个值、多一个就报错_99%的程序员在报错时的 30 种常见反应,太让人捧腹大笑了...
软件开发工作充满了挑战性.人无完人,对于程序员来说,写出有 bug 的代码是在所难免的.有些人很淡定,也有一些人会感到生气.沮丧.不安或气馁.在修复 bug 的过程中我们都经历了什么?这个值得我们一探 ...
- c语言 错排公式 程序,错排公式详解
在HDU刷题时遇到了关于错排公式的一些问题.本篇文章将详细解释错排公式的推导过程. 错排的定义:一段序列中一共有n个元素,那么可知这些元素一共有n!种排列方法.假如在进行排列时,原来所有的元素都不在原 ...
- c语言 错排公式 程序,错排公式的推导及应用
同时发布在我的个人博客:https://hushhw.cn/posts/learn/15287.html 以下是原文: 之前就遇到过错排公式的题,但是自己没有注意这个知识点,以为只要硬记住就好啦,结果 ...
- c语言指针易错情况,C语言/C++从入门到精通之指针易错点总结
指针是C语言的灵魂,所以学好指针很关键,本篇主要介绍了C语言/C++从入门到精通之指针易错点总结,通过具体的内容向大家展现,希望对大家C语言/C++的学习有所帮助. 学习C语言肯定会碰到指针,指针是C ...
- C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
例题:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 代码如下: /*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个 ...
- asp毕业设计——基于asp+access的学生排课管理系统设计与实现(毕业论文+程序源码)——学生排课管理系统
基于asp+access的学生排课管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的学生排课管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...
- c++实现医院检验科排班程序
c++实现医院检验科排班程序 1.背景: 医院急诊检验科24h×7×365值班.工作人员固定.採取轮班制度.确保24h都有人值班. 本文就通过C++实现编敲代码自己主动排班,并能够转为Excel打印. ...
- python--微信小程序获取手机号码报错
微信小程序获取手机号码报错,其中python文档中有一段需要引用 'Crypto'的库 在windows环境下可能会出现安装失败等原因,可以安装PyCryptodome来替代 转载于:https:// ...
- 小程序直播间报错:{“errmsg“:“the current room status does not allow this operation rid:“,“errcode“:300023}
修改小程序直播间报错 {"errmsg":"the current room status does not allow this operation rid: 5fd3 ...
- C语言试题九十一之写一个程序,用公式π/4=1-1/3+1/5-1/7+...,求π的近似值,直到最后一项的绝对值小于10^-8为止。
1.题目 写一个程序,用公式π/4=1-1/3+1/5-1/7+...,求π的近似值,直到最后一项的绝对值小于10^-8为止. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生 ...
最新文章
- 如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?
- python数列求和-加强版_ES6深入浅出-3 三个点运算 新版字符串-1.函数与对象的语法糖...
- C++知识点6——数组与指针初步
- 如何将OutputStream转换为InputStream?
- 哈佛大学让青蛙断腿再生:有骨头有血管,对刺激物还会产生强烈踢腿反应
- linux 组调度浅析
- Dubbo将积极适配Spring Cloud生态,Spring Cloud体系或将成为微服务的不二选择!
- 一个声明指定了多个类型的问题
- boost::geometry::math::equals用法的测试程序
- ActionBarSherlock ViewPagerIndicator
- Java注解--Java深度历险(转)
- 使用了SAP Spartacus的一个在线网站:乐高Storefront
- adf开发_了解ADF Faces clientComponent属性
- android Activity 之间传递复杂对象
- 优秀!读博期间一作发10篇1区SCI,他坦言自己也曾走过弯路
- CVPR 2020 | 北航提出:通过由粗到精特征自适应进行跨域目标检测,表现SOTA!
- 速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款
- 报错解决:No module named tensorflow.contrib
- 小米虚拟键透明方法_小米 6 用户该换机了!小米 6 Pro 曝光
- 考研408-计算机组成原理-总线