我正在尝试在 R 中编写一个函数,该函数将接受输入numb
并输出相应的加泰罗尼亚数字。供您参考,加泰罗尼亚数字的递归公式是,
C_0 = 1;
C_n = {(4n - 2)*C_(n-1)}/(n+1)
我的代码如下,
catalan_num_recr <- function(numb){
if (numb == 0){
return(1)
}
else
return(((4*numb-2)*catalan_num_recr(numb-1))/(numb+1))
}
当我运行该功能时,我得到,
> catalan_num_recr(3)
[1] 5
哪个是对的。
目标:但是,我正在尝试查找加泰罗尼亚语的数字范围,我想找到类似的东西,catalan_num_recr(1:10)
.
问题:这不适用于我的功能,我收到以下警告,
Warning messages:
1: In if (numb == 0) { :
the condition has length > 1 and only the first element will be used
还有很多错误的值作为输出,
> catalan_num_recr(1:15)
[1] 1.000000 2.000000 2.500000 2.800000 3.000000 3.142857 3.250000
[8] 3.333333 3.400000 3.454545 3.500000 3.538462 3.571429 3.600000
[15] 3.625000
有人可以帮我修改我的功能/或帮我解决问题吗?
问候。