更新时间:2022-08-09 10:13:29 来源:极悦 浏览1247次
递归 是一种巧妙而巧妙的构造,它允许函数调用自身。Matlab 编程语言支持它,因此函数可以在自己的执行过程中调用自己。Java递归方法可以直接在 Matlab 中实现。
这是一个简单的递归示例,我们来详细说明.
递归代码示例:
function y = ten_exp(n)
% 这是一个计算 y = 10^n 的递归程序。
% 该程序仅在 n 为非负整数时才有效。
% 如果 n 为负数,算法不会停止。
if n == 0
y = 1
else
n %<< 此行不需要,但用于检查
y = 10 * ten_exp(n-1)
end
在这些语句中(故意)避免使用分号,以查看不同级别的递归中的值更新。您可以通过在编辑器中运行分步功能来探索代码。
此代码具有使用分支的构造。比较 n == 0 是递归的基础,因为它定义了最后一步或最低级别。这是让程序停止调用自身的唯一方法。
分支中的“ else ”部分是递归的关键。诀窍是它调用了一个较低的值 (n - 1),并且它将继续这样做,直到它下降到 n = 0。
使用这种自调用技术时有几个注意事项:
第一个是函数可能永远调用自己并且永远不会返回答案。如果我们输入一个否定的参数,就会在上面的代码中发生这种情况。
第二个是递归会导致冗余计算,这可能很耗时。上面的代码一次又一次地使用可以使用单行代码 (10^n) 执行的指令。
第三个考虑是它需要更多的内存分配。在大型系统的计算中,不应将内存空间浪费在程序开销上。
另一方面,递归程序比非递归程序更容易编写和阅读。
现在,我们将再次使用这种技术编写一个函数来计算阶乘 (n!)。我们知道这不是计算阶乘数的最有效方法,但它在概念上是一种易于测试和实现的递归计算.
function y = fact(n)
% 我们有最大的数
y = n
%如果n == 0
y = 1则 我们下降到 0
否则% 我们乘以前面的所有整数,% 一次一个... y = y * fact(n-1) end
同样,这些是此示例的注意事项:
该函数可能会永远调用自己并且永远不会返回答案。如果我们输入一个否定的参数,就会在上面的代码中发生这种情况。
有可能是耗时的冗余计算。上面的代码一次又一次地使用可以使用单个内置函数(factorial(n))执行的指令。
以上就是关于“matlab递归调用的例子”介绍,大家如果对此比较感兴趣,想了解更多相关知识,可以关注一下极悦的Java教程,里面有更丰富的知识等着大家去学习,相信对大家一定会有所帮助的。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习