read

파스칼 삼각형이 다음 처럼 이뤄져있다고 보면

1 0
1 1 0
1 2 1 0
1 3 3 1 0
1 4 6 4 1 0
...

맨 오른쪽에 0 이 하나씩 있다고 치고 각 숫자는 자기 위의 숫자와 왼쪽 대각선위쪽의 숫자들의 합으로 결정된다고 볼 수 있다.

f(0, 0) = 1, f(0, 1) = 0
f(1, 0) = 1, f(1, 1) = 1, f(1, 2) = 0
...
f(m, n) = f(m-1, n) + f(m-1, n-1)

(define (f m n)
  (cond ((= m n) 1)
        ((< m n) 0)
        (else
         (if (= n 0)
             1
             (+ (f (- m 1) n) (f (- m 1) (- n 1)))))))

하지만, 인자로 n 하나 만을 받고 몇번째 줄까지 파스칼의 삼각형을 계속 출력해내는 걸 만들어보려고 하니 잘 안 되네요. 스터디그룹 메일링 리스트에 질문을 한 번 해봐야겠습니다.

Blog Logo

Ki Sung Bae


Published

Image

Gsong's Blog

Developer + Entrepreneur = Entreveloper

Back to Overview