【发布时间】:2018-05-21 16:41:07
【问题描述】:
我正在尝试在 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
这是正确的。
AIM:但是,我正在尝试查找加泰罗尼亚语的数字范围,
我想找到类似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
有人可以帮我修改我的功能/或帮我解决问题吗?
问候。
【问题讨论】: