求数的划分记忆化搜索的方法 PASCAL语言
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/02 01:04:19
求数的划分记忆化搜索的方法 PASCAL语言
如题是记忆化搜索,不是动态规划
如题是记忆化搜索,不是动态规划
![求数的划分记忆化搜索的方法 PASCAL语言](/uploads/image/z/6872708-20-8.jpg?t=%E6%B1%82%E6%95%B0%E7%9A%84%E5%88%92%E5%88%86%E8%AE%B0%E5%BF%86%E5%8C%96%E6%90%9C%E7%B4%A2%E7%9A%84%E6%96%B9%E6%B3%95+PASCAL%E8%AF%AD%E8%A8%80)
就把动态规划的计算过程改成记忆化搜索就好了.
对于一般的动态规划改记忆化搜索:
如果动态规划方程是
f[A] = func() 其中use f[B[i]]
那么改数组f[A]为函数f(A)
然后对于其中用到的一个f[B[i]]对应改成f(B[i]),然后用数组remember[A]纪录下f(A)的值,如果没有计算过就记为-1,因为每个remember[A]只被计算一次,所以效率与动态规划大致相同.
(注意,其中的大写字母不是一个数,而是一个状态)
对于一般的动态规划改记忆化搜索:
如果动态规划方程是
f[A] = func() 其中use f[B[i]]
那么改数组f[A]为函数f(A)
然后对于其中用到的一个f[B[i]]对应改成f(B[i]),然后用数组remember[A]纪录下f(A)的值,如果没有计算过就记为-1,因为每个remember[A]只被计算一次,所以效率与动态规划大致相同.
(注意,其中的大写字母不是一个数,而是一个状态)