[英]How can I define a sequence of recursive functions?
我試圖定義以下 function 但失敗了。 任何建議都將受到歡迎。
H = list()
H[[1]] = function(x) 1
for(i in 2:4) H[[i]] = function(x) H[[i-1]](x)*x+1
> H
[[1]]
function (x)
1
[[2]]
function (x)
H[[i - 1]](x) * x + 1
[[3]]
function (x)
H[[i - 1]](x) * x + 1
[[4]]
function (x)
H[[i - 1]](x) * x + 1
> H[[1]](1)
1
> H[[2]](1)
Too Deep Nesting
與其遞歸定義一組函數,不如定義一個遞歸 function:
H <- function(x, n) {
if (n == 1) 1 else H(x, n-1) * x + 1
}
然后, H(x, n)
返回與您的H[[n]](x)
相同的結果。
為了完整起見:您使用 for 循環的方法不起作用,因為每個 function 取決於在生成 function 時分配給i
的特定值。 在循環結束時i
設置為4
。 當您調用H[[2]](10)
R 嘗試計算H[[i-1]](10) * 10 + 1 = H[[3]](10) * 3 + 1 =...
以無限遞歸結束。 簡單地說,R 不記得在定義 H[[2]] 時i
等於 2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.