在上篇文章:LabVIEW编程实例:计算阶乘,学习for循环+移位寄存器+递归调用,通过一个求阶乘的例子已经演示了LabVIEW中基本递归VI程序的实现方法,但有很多小伙伴还是不太明白,下面再通过一个具体的例子给大家讲解一下其实现方法,加深LabVIEW中递归VI程序的理解。
例子说明
这儿以斐波那契数列(Fibonacci sequence)进行说明。斐波那契数列又称黄金分割数列,它是以兔子繁殖为例而引入的一个序列,所以又称为“兔子数列”,相信很多小伙伴在学C语言编程练习递归算法的时候应该接触过这个数列,这个数列在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
在数学上它以递归的方式进行定义,指这样的一个数列:0、1、1、2、3、5、8、13、21、34、55、89、144……,即前两个数为分别为0和1,从第3项开始,每项的值都等于其前两项之和。斐波那契数列Fib(n)用公式表示为:
Fib(n) = Fib(n-1) + Fib(n-2),其中,Fib(0) = 0,Fib(1) = 1
下面看下在LabVIEW中如何编写递归VI实现求解斐波那契数列Fib(n)中第n项的值。
LabVIEW中递归VI程序的特点
在讲具体的编程实现之前,大家应该先知道LabVIEW中递归VI的基本特点。
根据递归VI的定义,即程序在运行过程中能够调用自己的这样的VI就是递归VI程序,所以,对于递归VI程序,其特点包括以下几个方面