저는 계산의 '체인'에 얼마나 많은 '링크'가 있는지에 대한 길이를 얻기 위해 다양한 숫자를 반복하려고합니다. 나는 숫자를 가지고 그 경우에도 물건을 할, 그 이상한 경우 물건을하고 내 코드 1 안타 때까지 계속R에서의 RecuRion - 변수가 전달되지 않습니까?
chainCount <- 0
chain <- function(n){
if(n %% 2 == 0 && n > 1){
n <- n/2
chainCount <- chainCount + 1
print(chainCount)
chain(n)
}
else if (n > 1){
n <- 3*n + 1
chainCount <- chainCount + 1
print(chainCount)
chain(n)
}
}
chain(13)
기능 수행 13 → 40 → 20 → 10 → 5 16 → 8 → → chainCount 변수가 있지만, 재귀 반복 될 때마다 증가하지 않습니다 어떤 이유 → 2 → 1. 4, 9 단계에있을 때부터,
> chain(13)
[1] 1
[1] 1
[1] 1
[1] 1
[1] 1
[1] 1
[1] 1
[1] 1
[1] 1
가 나에게 (9)을 제공한다
를 제공하고 있습니다 프로세스의 합계 R과 같은 재귀 적 문제에 대한 특별한 변수 할당이 있습니까? (!주의)
또는 카운터를 함수에 변수로 전달하면 전역 변수가 필요하지 않습니다. –