多分支结构和其矩阵形式
矩阵形式的多分支结构
在 Plotter 里,程序语句可以放入一个数组或者矩阵,if 函数接受一个至少 n 行 2 列的矩阵或者数组,从第一行开始判断,直到某一行的第一个元素是成立的时候,返回该行第二个元素。类似于多 if 的分支结构。
使用矩阵形式的多分支结构的优势是:分支结构中的条件和结果也可以参与矩阵运算
下面是一个使用递归函数和多分支结构的例子:斐波那契数列
0, 1, 1, 2, 3, 5, 8, ...
a(n)=n<0?0:if([[n<2,1],[1,a(n-1)+a(n-2)]])
可以使用矩阵换行符 ;
简化表达式
a(n)=n<0?0:if([n<2,1;1,a(n-1)+a(n-2)])
输出 a(3)
的值。将代码格式化,并用 #
注释
a(n)= # 定义函数 a(n)
n<0?0: # 如果 n<0 退出递归 返回 0
if([ # if 函数
n<2,1; # 如果 n<2 返回 1
true,a(n-1)+a(n-2) # 否则 返回 a(n-1)+a(n-2)
]); # 以分号结尾,不输出结果
a(3) # 不以分号结尾,输出结果
输出结果:3
使用三目运算 ?:
的多分支结构
在 Plotter 里,使用三目运算符 ?:
可以实现二分支结构,组合多个 ?:
可以实现多分支结构
一个使用递归函数和多分支结构的例子:斐波那契数列
a(n)=n<0?0:n<2?1:a(n-1)+a(n-2)
代码格式化
a(n)= # 定义函数 a(n)
n<0?0: # 如果 n<0 退出递归 返回 0
n<2?1: # 如果 n<2 返回 1
a(n-1)+a(n-2) # 否则 返回 a(n-1)+a(n-2)
斐波那契数列的推广
..., 8, -5, 3, -2, 1, -1, 0, 1, 1, 2, 3, 5, 8, ...
a(n)=n<0?a(n+1)+a(n+2):n>1?a(n-1)+a(n-2):n
代码格式化
a(n)=
n<0?
a(n+1)+a(n+2):
n>1?
a(n-1)+a(n-2):
n
LaTeX 公式