C++编程《第08课 复杂递推》教学课件.pptxVIP

  • 0
  • 0
  • 约2.84千字
  • 约 20页
  • 2026-03-10 发布于广西
  • 举报

C++编程《第08课 复杂递推》教学课件.pptx

第08课复杂递推

学习目标概念熟练掌握递推概念能够运用递推处理复杂问题

知识讲授

错排问题现在有n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况

问题分析先任取一封信,此时可供选择的信封有:n-1种情况。每种情况下,我们在放置这封信的时候有2种方案:1.这封信的位置,不与剩余的任意一封信互换,此时,剩余的问题就是:将n-1封信,错放在n-1个信封里,即f(n-1)2.这封信的位置,与剩余的任意一封信互换,此时会有2个信封被使用掉。剩余的问题就是:将n-2封信,错放在n-2个信封里,即f(n-2);得出递推式:f(n)=(n-1)*(f(n-1)+f(n-2))。边界是:f(1)=0,f(2)=1。

#includebits/stdc++.husingnamespacestd;longlongf[25];intmain(){intn;cinn;f[1]=0,f[2]=1;for(inti=3;i=n;i++){f[i]=(i-1)*(f[i-1]+f[i-2]);}coutf[n];return0;}参考代码

棋盘和迷宫问题现在有一个m*n的迷宫,迷宫上有x个点是无法行走的,其它点都可以走。你每次移动只能向下或者向右,现在给出x个障碍点,问从(1,1)点

文档评论(0)

1亿VIP精品文档

相关文档