2016-11-25 8 views
3

나는 피보나치 수식이 어떻게 작동 하는지를 알았지 만 재귀 부분은 어떻게 작동하는지 이해했다. 예를 들어, fib (4)는 fib (3) + fib (2)를 호출합니다. 이 메서드는 fib (3) 및 fib (2)의 값을 어떻게 결정합니까? 나는 Ruby의 초보자이므로 멍청한 질문을하는 것에 대해 실례합니다.피보나치 코드 (Ruby)가 어떻게 작동합니까?

+2

이는 아무 상관이 여기에 깊은 연구를 수행하려는 경우 피보나치와 또는 루비. 재귀에 문제가 있습니다 ... 재귀 작업에 대해 이미 100 번 질문하고 답했습니다. – Polygnome

+1

여기를보세요 http://stackoverflow.com/questions/38580523/understanding-the-fibonacci-sequence/38582180#38582180 –

답변

4

재귀는 '중단 점'이 발생할 때까지 반복적으로 자신을 호출하여 작동합니다. fib (1) 및 fib (0) 값을 fib (2) 및 fib (1) ... 메서드가 호출 한 fib (3) 및 fib (2), fib (3) 호출하는 Fib (4) 1.

로 저를 시각적으로 설명하려고하자

> fib(4) =   fib(3)     +   fib(2) 
> =>  fib(2)  + fib(1)  +  fib(1) + fib(0) 
> => fib(1) + fib(0) + 1   +   1  + 1