枚举、递归和动规划.docVIP

  • 5
  • 0
  • 约5.42千字
  • 约 7页
  • 2016-11-30 发布于贵州
  • 举报
枚举、递归和动规划

枚举、递归和动态规划 李文新 北京大学信息科学技术学院 利用计算机编写程序进行问题求解时,有两种不同于用数学方法解决问题的最常用的思想:枚举和递归。枚举的基本思想是在可能的解空间中逐一尝试,通过判定尝试的值是否与已知条件矛盾来确定其是否是问题的解。这种思想通常不需要知道输入条件与问题的解之间的函数关系。递归的基本思想是假设对于输入x,问题的解是f(x),则试图找到函数g,使得f(x) = g(f(x-1))。也就是找到一种将原问题缩小规模的方法,并且如果当规模缩小到一定程度时,问题的解是已知的。那么我们就可以通过函数的递归调用获得在不知道函数f的情况下获得问题的解。在递归调用过程中,有时候可能会出现重复计算的现象,我们可以将递归的过程翻转过来考虑,从小规模问题的已知解推向要求解的较大规模问题的解,这个过程需要保留中间计算结果,我们称这种解决问题的方法是动态规划。在计算机上使用枚举和递归的思想解决问题是利用了计算机的高速度和不知疲惫的特性,它所求解的问题通常是不容易找或者找不到求解方程的问题。动态规划可以看作是进行时间效率优化的一种方法。 枚举 - 熄灯问题1222 问题描述:有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果

文档评论(0)

1亿VIP精品文档

相关文档