动态规划示例:用 MATLAB 代码实现斐波那契数列
当谈到动态规划的示例时,最经典和常见的示例是求解斐波那契数列。斐波那契数列的定义如下:
F(0) = 0 F(1) = 1 F(n) = F(n-1) + F(n-2) (n ≥ 2)
下面是使用动态规划解决斐波那契数列问题的示例 MATLAB 代码:
function fib = fibonacci(n)
if n <= 1
fib = n;
else
% 创建一个数组来保存计算过的斐波那契数
fibArray = zeros(1, n+1);
fibArray(1) = 0;
fibArray(2) = 1;
% 递推计算斐波那契数
for i = 3:n+1
fibArray(i) = fibArray(i-1) + fibArray(i-2);
end
fib = fibArray(n+1);
end
end
通过将中间结果存储在数组fibArray中,避免了重复计算,从而提高了效率。可以使用以下代码测试该函数:
n = 10; % 输入斐波那契数列的索引
fib = fibonacci(n);
disp(['第', num2str(n), '个斐波那契数是:', num2str(fib)]);
这个示例展示了如何使用动态规划技术解决斐波那契数列问题。通过存储中间结果,动态规划可以有效地解决一些重叠子问题,提高算法的效率。
请注意,这只是动态规划在 MATLAB 中的一个示例,你可以将其应用于其他需要动态规划方法的问题,并根据具体情况进行修改和优化。
原文地址: https://www.cveoy.top/t/topic/bxu1 著作权归作者所有。请勿转载和采集!