递推的方法推导错排公式  当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语言 错排公式 程序,错排公式 错排(加组合)相关推荐

  1. python创建数据库为什么只能有4个值、多一个就报错_99%的程序员在报错时的 30 种常见反应,太让人捧腹大笑了...

    软件开发工作充满了挑战性.人无完人,对于程序员来说,写出有 bug 的代码是在所难免的.有些人很淡定,也有一些人会感到生气.沮丧.不安或气馁.在修复 bug 的过程中我们都经历了什么?这个值得我们一探 ...

  2. c语言 错排公式 程序,错排公式详解

    在HDU刷题时遇到了关于错排公式的一些问题.本篇文章将详细解释错排公式的推导过程. 错排的定义:一段序列中一共有n个元素,那么可知这些元素一共有n!种排列方法.假如在进行排列时,原来所有的元素都不在原 ...

  3. c语言 错排公式 程序,错排公式的推导及应用

    同时发布在我的个人博客:https://hushhw.cn/posts/learn/15287.html 以下是原文: 之前就遇到过错排公式的题,但是自己没有注意这个知识点,以为只要硬记住就好啦,结果 ...

  4. c语言指针易错情况,C语言/C++从入门到精通之指针易错点总结

    指针是C语言的灵魂,所以学好指针很关键,本篇主要介绍了C语言/C++从入门到精通之指针易错点总结,通过具体的内容向大家展现,希望对大家C语言/C++的学习有所帮助. 学习C语言肯定会碰到指针,指针是C ...

  5. C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    例题:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 代码如下: /*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个 ...

  6. asp毕业设计——基于asp+access的学生排课管理系统设计与实现(毕业论文+程序源码)——学生排课管理系统

    基于asp+access的学生排课管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的学生排课管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...

  7. c++实现医院检验科排班程序

    c++实现医院检验科排班程序 1.背景: 医院急诊检验科24h×7×365值班.工作人员固定.採取轮班制度.确保24h都有人值班. 本文就通过C++实现编敲代码自己主动排班,并能够转为Excel打印. ...

  8. python--微信小程序获取手机号码报错

    微信小程序获取手机号码报错,其中python文档中有一段需要引用 'Crypto'的库 在windows环境下可能会出现安装失败等原因,可以安装PyCryptodome来替代 转载于:https:// ...

  9. 小程序直播间报错:{“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 ...

  10. 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语言笔试.机试.研究生 ...

最新文章

  1. 如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?
  2. python数列求和-加强版_ES6深入浅出-3 三个点运算 新版字符串-1.函数与对象的语法糖...
  3. C++知识点6——数组与指针初步
  4. 如何将OutputStream转换为InputStream?
  5. 哈佛大学让青蛙断腿再生:有骨头有血管,对刺激物还会产生强烈踢腿反应
  6. linux 组调度浅析
  7. Dubbo将积极适配Spring Cloud生态,Spring Cloud体系或将成为微服务的不二选择!
  8. 一个声明指定了多个类型的问题
  9. boost::geometry::math::equals用法的测试程序
  10. ActionBarSherlock ViewPagerIndicator
  11. Java注解--Java深度历险(转)
  12. 使用了SAP Spartacus的一个在线网站:乐高Storefront
  13. adf开发_了解ADF Faces clientComponent属性
  14. android Activity 之间传递复杂对象
  15. 优秀!读博期间一作发10篇1区SCI,他坦言自己也曾走过弯路
  16. CVPR 2020 | 北航提出:通过由粗到精特征自适应进行跨域目标检测,表现SOTA!
  17. 速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款
  18. 报错解决:No module named tensorflow.contrib
  19. 小米虚拟键透明方法_小米 6 用户该换机了!小米 6 Pro 曝光
  20. 考研408-计算机组成原理-总线

热门文章

  1. 今天竟然有人模仿我的QQ号进行骗钱
  2. 互联网求职如何进行薪酬谈判
  3. 救火队员的那些事(2)
  4. HDU 6186 CS Course(线段树区间操作)
  5. Oracle处理CLOB超过4000入库问题
  6. kali配置网络和安全通信
  7. 【 高透明塑料抗菌剂iHeir-ECO 塑料制品添加剂】
  8. IDEA使用svn管理代码
  9. python模块之shelve
  10. 神奇的“狼抓兔子”(The absolute security Place)