여기 내 프로그램이 있습니다. n이 0이면 1 따라서 황금 비율을 제시하고, 여기에 추가로Racket Scheme, 반환 값에 1을 더합니까?
(define (golden n)
(cond
[(equal? n 0) 0]
[else (/ (+ 1 (golden (- n 1)))) ]
))
, 나는 결과를 반환 할 ... 1.61 현재이 프로그램은 분수로 약 0.61 반환 - 나도 몰라 어떻게 추가하나요?
여기 내 프로그램이 있습니다. n이 0이면 1 따라서 황금 비율을 제시하고, 여기에 추가로Racket Scheme, 반환 값에 1을 더합니까?
(define (golden n)
(cond
[(equal? n 0) 0]
[else (/ (+ 1 (golden (- n 1)))) ]
))
, 나는 결과를 반환 할 ... 1.61 현재이 프로그램은 분수로 약 0.61 반환 - 나도 몰라 어떻게 추가하나요?
귀하의 근사치는 golden ratio - 1
입니다. 그렇다면 이후에 누락 된 문자를 1
에 추가하지 않으시겠습니까? 또한, 값을 결과를 10 진수로 변환하는 데 유용 할 수 있습니다 그냥 그 일을 위해 도우미를 쓰자 (일부 통역처럼, 대신 분수에 결과를 반환하는.) 그것은 기대 작품으로
(define (golden n)
(+ 1
(exact->inexact
(golden-helper n))))
(define (golden-helper n)
(cond
[(equal? n 0) 0]
[else (/ 1 (+ 1 (golden-helper (- n 1))))]))
을 :
를(golden 1000)
=> 1.618033988749895
도우미 기능이없는 솔루션입니다. 황금 비율의 연속 비율은 phi = 1 + 1/(1 + 1/(1 + 1/..))입니다. 그래서 각 단계에서 당신은 그렇지 않으면 당신에 의해 부서를 얻을 수 또한 1 최종 재귀 단계의 return 문을 변경해야 자동으로
(define (golden n)
(cond
[(equal? n 0) 1]
[else (+ 1 (/ 1 (golden (- n 1)))) ]
))
하나를 포함 x_{n+1} = 1 + 1/x_n
(안 x_{n+1} = 1/(1+x_n)
)과 재귀를 구현할 수 있습니다 제로.