- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我刚刚开始理解动态规划的概念。我知道它用于缓存 future 调用的结果,并且它在设计提供指数运行时间的复杂算法方面非常有效。我不明白的是流程如何以编程方式工作。例如,使用动态规划计算第 n 个 Fibonacci 数,如下所示。程序中的流程是怎样的?
int[] fibMap = new int[max]
int fibo(int i){
if(i == 0) return 0;
if(i == 1) return 1;
if( fibMap[i] != 0) return fibMap[i]; // return cached result
fibMap[i] = fibo(i-1)+fibo(i-2); //Cache result
return fibMap[i];
}
我从我正在使用的一本 Java 引用书中找到了这段代码,但我很难弄清楚这个程序是如何工作的。假设我们想要计算一个简单的 fibo(3) 或 fibo(5),有人可以向我解释程序如何缓存结果以及整体流程如何解决这个问题与没有 DP 的正常递归方法相比,如下所示?
int fibo(int i){
if(i == 0) return 0;
if( i == 1) return 1;
return fibo(i-1) + fibo(i-2);
}
最佳答案
你的代码是
int fibo(int i){
if(i == 0) return 0;
if(i == 1) return 1;
if( fibMap[i] != 0) return fibMap[i]; // return cached result
fibMap[i] = fibo(i-1)+fibo(i-2); //Cache result
return fibMap[i];
}
或者,等价地
int fibo(int i){
if(i == 0) return 0;
if(i == 1) return 1;
if( fibMap[i] == 0)
fibMap[i] = fibo(i-1)+fibo(i-2); //Cache result
return fibMap[i];
}
因此“流”基本上与非缓存版本完全相同,除了您避免重新计算已经计算的结果。
关于java - 了解简单动态规划的流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24275296/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!