Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 프로그램의 N번째 카탈루냐 숫자

<시간/>

이 기사에서는 n번째 카탈루냐 숫자를 계산하는 방법에 대해 알아봅니다.

카탈루냐 숫자 재귀 공식 -

에 의해 정의되는 일련의 자연수입니다.

$$c_{0} =1\;그리고\; c_{n+1} =\displaystyle\sum\limits_{i=0}^nc_{i} c_{n-i}\; n\geq 0;$$

n =0, 1, 2, 3, …에 대한 처음 몇 개의 카탈루냐 숫자는 1, 1, 2, 5, 14, 42, 132, 429입니다. ...

카탈루냐 숫자는 재귀 및 동적 프로그래밍을 통해 얻을 수 있습니다.

이제 구현을 살펴보겠습니다.

접근법 1:재귀 방법

예시

접근법 1:재귀 방법

# A recursive solution
def catalan(n):
   #negative value
   if n <=1 :
      return 1
   # Catalan(n) = catalan(i)*catalan(n-i-1)
   res = 0
   for i in range(n):
      res += catalan(i) * catalan(n-i-1)
   return res
# main
for i in range(6):
   print (catalan(i))

출력

1
1
2
5
14
42

모든 변수와 재귀 호출의 범위는 다음과 같습니다.

Python 프로그램의 N번째 카탈루냐 숫자

접근법 2:동적 프로그래밍 방법

예시

# using dynamic programming
def catalan(n):
   if (n == 0 or n == 1):
      return 1
   # divide table
   catalan = [0 for i in range(n + 1)]
   # Initialization
   catalan[0] = 1
   catalan[1] = 1
   # recursion
   for i in range(2, n + 1):
      catalan[i] = 0
      for j in range(i):
         catalan[i] = catalan[i] + catalan[j] * catalan[i-j-1]
   return catalan[n]
# main
for i in range (6):
   print (catalan(i),end=" ")

출력

1
1
2
5
14
42

모든 변수와 재귀 호출의 범위는 다음과 같습니다.

Python 프로그램의 N번째 카탈루냐 숫자

결론

이 기사에서는 n번째 카탈루냐 숫자를 생성하는 방법에 대해 배웠습니다.