파스칼의 삼각형

a·2024년 4월 26일
0

알고리즘

목록 보기
14/17

파스칼의 삼각형: 기본 소개

파스칼의 삼각형은 이항 계수의 수학적 배열을 삼각형 형태로 나타낸 것입니다. 프랑스의 수학자 블레즈 파스칼의 이름을 따서 명명된 이 도구는 간단하면서도 강력하여, 이항 계수를 시각적으로 나타내는 데 중요한 역할을 합니다. 이는 조합론에서만 중요한 것이 아니라, 이항 전개, 확률 등 다양한 수학 문제를 해결하는 데에도 활용됩니다.

파스칼의 삼각형 구조

파스칼의 삼각형은 최상단에 1 하나로 시작합니다. 각 후속 행은 1로 시작하고 끝나며, 삼각형 안의 각 숫자는 바로 위 행의 두 숫자를 합산하여 구성됩니다. 삼각형은 다음과 같이 시작됩니다:

       1
      1 1
     1 2 1
    1 3 3 1
   1 4 6 4 1
  1 5 10 10 5 1

수학적 특성

파스칼의 삼각형의 각 항목은 이항 계수 (\binom{n}{k})와 동일합니다. 여기서 n은 행 번호이고 k는 해당 행에서의 위치를 나타냅니다. 이항 계수는 다음과 같이 계산됩니다:

[(nk)=n!k!(nk)!][ \binom{n}{k} = \frac{n!}{k!(n-k)!} ]

그러나 파스칼의 삼각형에서는 다음과 같은 재귀적 관계를 사용하여 간단하게 계산됩니다:

[(nk)=(n1k1)+(n1k)][ \binom{n}{k} = \binom{n-1}{k-1} + \binom{n-1}{k} ]

파스칼의 삼각형의 활용

  1. 이항 전개: 파스칼의 삼각형은 ((x + y)^n)의 확장에 대한 계수를 제공하며, 이는 n번째 행의 요소와 직접적으로 일치합니다.
  2. 조합 계산: 팩토리얼을 계산하지 않고도 n개 항목 중 k개를 선택하는 방법의 수를 쉽게 결정할 수 있습니다.
  3. 기하학적 형태: 특정 행의 항목 수는 조합론적 해석을 바탕으로 특정 기하학적 형태의 요소 수와 일치할 수 있습니다.

Java로 파스칼의 삼각형 구현하기

다음은 주어진 행 수까지 파스칼의 삼각형을 생성하고 출력하는 간단한 Java 프로그램입니다:

import java.util.Scanner;

public class PascalTriangle {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("행의 수를 입력하세요: ");
        int numRows = scanner.nextInt();
        printPascalsTriangle(numRows);
        scanner.close();
    }

    private static void printPascalsTriangle(int numRows) {
        int[][] triangle = new int[numRows][numRows];

        for (int i = 0; i < numRows; i++) {
            triangle[i][0] = 1;  // 각 행의 시작은 1
            triangle[i][i] = 1;

  // 각 행의 끝은 1

            for (int j = 1; j < i; j++) {
                triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
            }
        }

        for (int i = 0; i < numRows; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(triangle[i][j] + " ");
            }
            System.out.println();
        }
    }
}

0개의 댓글