记忆化搜索简介「建议收藏」

记忆化搜索简介「建议收藏」记忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。更重要的是搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多。记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必重新求解了。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

记忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。
一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。
更重要的是搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多。
记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,
以后再次遇到这个状态的时候,就不必重新求解了。
这种方法综合了搜索和动态规划两方面的优点,因而还是很有实用价值的。

这种方法做题有时比动态规划还简便。

下面是一个记忆化搜索的例题:


爬楼梯

有一个n阶的楼梯,每一次可以上1阶或2阶,有多少种方法?

#include<stdio.h>

long long x[10010],y[10010];
long long Mesch(int i) //Mesch 为 Memory search 记忆化搜索 
{
	int j;
	if(i==1) return 1;
	if(i==2) return 2;
	if(y[i]>0) return y[i]; //记忆化搜索 
	y[i]=Mesch(i-1)+Mesch(i-2);
	return y[i]; 
}
int main()
{
	int n;
	scanf("%d",&n);
	printf("%I64d",Mesch(n));
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164451.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树莓派连接WiFi[通俗易懂]

    树莓派连接WiFi[通俗易懂]1、在/etc/network/interfaces文件下添加autowlan0ifacewlan0inetdhcpwpa-conf/etc/wpa.confifacedefaultinetdhcp2、配置热点在/etc目录下面新建文件wpa.conf,添加network={ssid=”ewatt”//wifi名称key_mgmt=WPA…

    2022年6月14日
    26
  • JSP页面运行却显示源码

    JSP页面运行却显示源码使用SpringMVC跳转页面,但是页面显示的缺失JSP源码,如下:通过网上查找各种原因,最后找到解决方法,如下:问题是因为在web.xml文件中的”/*”,用该形式访问jsp文件时,星号“*”会把*.jsp,*.sql,*.txt都当做txt处理。结果就是直接在浏览器加载了jsp源码。所以,只要把星号“*”去掉,改为别种访问形式。如“。do”、“/…

    2022年6月22日
    55
  • 观察者模式observer不适用于_观察者模式代码

    观察者模式observer不适用于_观察者模式代码观察者模式Obeserver动机模式定义实例结构图要点总结笔记动机在软件构建过程中,我们需要为某些对象建立 一种“通知依赖关系” —-一个对象发(目标对象)的状态发生改变,所有依赖的对象(观察者对象)都将很好的得到通知。如果这样的依赖关系过于紧密。将使软件不能很好的抵御变化使用面向对象技术 可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(subject)的状态发生改变时,所有依赖于它的对象都得到通

    2022年8月9日
    5
  • python动态心形代码简单_python心形曲线代码

    python动态心形代码简单_python心形曲线代码欢迎关注【拇指笔记】,持续更新一些好玩、有趣的Python小项目。需要程序的朋友,直接私信我即可。原文链接【Python】五分钟画一条动态心形曲线~​mp.weixin.qq.com先上效果使用Python绘制一条动态的心形曲https://www.zhihu.com/video/12280010884537671681.绘制一条心形曲线最近看到个视频,打算绘制个心型动态的曲线。1.1Matla…

    2022年10月16日
    4
  • 灰色关联度分析(Grey Relation Analysis,GRA)原理详解[通俗易懂]

    灰色关联度分析(Grey Relation Analysis,GRA)原理详解[通俗易懂]释名灰色关联度分析(GreyRelationAnalysis,GRA),是一种多因素统计分析的方法。简单来讲,就是在一个灰色系统中,我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对强弱,再直白一点,就是说:我们假设以及知道某一个指标可能是与其他的某几个因素相关的,那么我们想知道这个指标与其他哪个因素相对来说更有关系,而哪个因素相对关系弱一点,依次类推,把这些因素排个序,得到一个…

    2022年7月17日
    17
  • 电脑蓝屏代码0x000000ed的解决方法_蓝屏错误代码0xc000007b

    电脑蓝屏代码0x000000ed的解决方法_蓝屏错误代码0xc000007b一些用户发现自己的XP系统出现蓝屏,屏幕上显示的代码是0x000000ED,遮盖如何解决呢?今天小编就给大家分享一下解决这个问题的方法吧。导致蓝屏原因:一般都是由系统软件、内存、硬盘引起的。解决方法:1电脑不心装上了恶意软件,或上网时产生了恶意程序,建议用360卫士、金山卫士等软件,清理垃圾,查杀恶意软件,就可能解决。实在不行,重装,还原过系统,可以解决软件引起的问题。2如果不能进入系统,可…

    2022年10月8日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号