데이터

제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-11

Leah (리아) 2025. 10. 28. 16:15
반응형

 Chapter 01. 기초 수학

 

군수열 (Grouped Sequence)

 

1. 군수열이란?

여러 개의 항을 묶었을 때 규칙성을 가지는 수열

예시:

1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, ...

이를 묶음(군)으로 나누면 다음과 같다.

항 구성 항의 개수
1군 (1) 1개
2군 (1, 2) 2개
3군 (1, 2, 3) 3개
4군 (1, 2, 3, 4) 4개
5군 (1, 2, 3, 4, 5) 5개

즉,

1군에는 1개, 2군에는 2개, n군에는 n개의 항이 존재한다.


2. 군수열의 일반항과 합

  • 각 군의 마지막 항 번호는 아래와 같다.

이는 등차수열의 합 공식에서 유도된다.

군 번호 항 개수 마지막 항 번호 Sn
1 1 1
2 2 3
3 3 6
4 4 10
5 5 15
6 6 21
7 7 28

예: 9군의 마지막 항은

따라서 45번째 항이 9군의 마지막 항이다.

 


3. 특정 항 찾기 예시

예를 들어,
50번째 항의 값을 구하려면,

 

1. 군별 누적 항 개수를 계산한다.

-> 50번째 항은 10군의 5번째 항이다.

 

2. 따라서 50번째 항의 값은 a=5

💡 핵심: “50번째 항은 10군의 5번째 위치”
→ 10군의 첫 항이 1이므로 5번째 항은 5


4. 군수열 응용 실습

다음과 같은 규칙을 가진 군수열을 코드로 구현해보자.

 
1, 1, 2, 1, 2, 3, 1, 2, 3, 4, ...

파이썬 실습 ① – 기본 군수열

 
n = int(input("n번째 항을 입력하세요: "))

k = 1
while n > k * (k + 1) / 2:  # 누적 항 수가 n을 넘을 때까지 반복
    k += 1

# n번째 항의 위치 (해당 군 내에서 몇 번째 항인지)
pos = int(n - (k - 1) * k / 2)
print(f"{n}번째 항의 값은 {pos}입니다.")

 

입력 예시

 
n = 50

 

출력

50번째 항의 값은 5입니다.

파이썬 실습 ② – 이중 구조 군수열

조금 더 복잡한 형태의 수열도 만들 수 있다.

 
1_1, 1_2, 2_1, 1_3, 2_2, 3_1, 1_4, 2_3, 3_2, 4_1, ...

이를 구현하려면 두 인덱스의 관계를 반전시켜주는 규칙이 필요하다.

n = int(input("n번째 항을 입력하세요: "))

k = 1
while n > k * (k + 1) / 2:
    k += 1

pos = int(n - (k - 1) * k / 2)
a = pos
b = k - pos + 1

print(f"{n}번째 항은 ({a}, {b})입니다.")

 

입력 예시

n = 40

 

출력

40번째 항은 (4, 6)입니다.

💡 (a, b) 구조를 통해 군과 내부 항의 관계를 동시에 표현할 수 있다.


🧩 수식 정리

구분 수식 설명
군의 마지막 항 번호 Sn=n2+n2S_n = \frac{n^2 + n}{2} n군의 마지막 항
군 내 항의 위치 pos=n−Sk−1pos = n - S_{k-1} n번째 항이 k군에서 몇 번째인지
n번째 항의 값 a=posa = pos 군 내부 위치값

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

이번 강의에서는 수열을 “묶음 단위”로 관찰하는 새로운 시각을 배웠다.
단순히 하나의 규칙이 아닌, “군”이라는 계층 구조를 통해 수열의 패턴을 이해할 수 있었다.

특히 while문을 통해 군의 범위를 찾아내는 방식은 논리적 반복과 조건 처리의 개념을 수학적으로 체득할 수 있었다.


🚀 적용점

 

  • 프로그래밍
    • 수열을 구간 단위로 분석하는 알고리즘 설계 연습
    • while 반복문과 누적 합을 활용한 동적 규칙 탐색
  • 수학적 사고
    • 계차수열, 군수열, 계층적 패턴 간의 관계 이해
    • 군수열 공식을 이용해 n번째 항 추론 훈련
  • 시각화 확장
    • matplotlib을 이용해 군별 항의 위치를 그래프로 시각화
    • 군 단위별 누적 곡선을 표현하여 패턴 확인

👉 이번 단원은 수열을 “계층 구조적 시각” 으로 이해하는 첫 단계였으며,
다음에는 수열의 규칙을 식별하는 알고리즘적 접근(패턴 탐색) 으로 확장할 수 있다.

 

반응형