피보나치 수열의 피사노 주기: 모듈로 연산에서 나타나는 주기성의 수학적 탐구
수학1 수열 단원 탐구보고서
피보나치 수열 탐구의 깊이 향상
피보나치 수열의 피사노 주기: 모듈로 연산에서 나타나는 주기성의 수학적 탐구
1. 서론 (Introduction)
수학을 공부하면서 피보나치 수열은 단순한 수의 나열을 넘어 자연, 예술, 공학 등 다양한 분야에서 반복적으로 등장한다는 점에서 깊은 인상을 주었습니다. 특히 고등학교 수학 교과 과정에서 수열의 정의, 점화식, 일반항, 그리고 수열의 성질을 학습하면서, 피보나치 수열이 갖는 구조적 아름다움과 수학적 깊이에 매료되었습니다. 이러한 관심은 단순히 피보나치 수열의 각 항을 계산하거나 황금비와의 관계를 탐구하는 데 그치지 않고, 수열의 항을 어떤 자연수 $n$으로 나누었을 때 나타나는 새로운 패턴, 즉 ‘주기성’에 대한 호기심으로 이어졌습니다.특히, 수열의 각 항을 $n$으로 나눈 나머지로 이루어진 새로운 수열이 일정한 길이마다 반복된다는 사실, 즉 피사노 주기(Pisano period)가 존재한다는 점은 매우 흥미로웠습니다. 이는 단순한 수열의 계산을 넘어, 모듈로 연산(modulo operation)과 주기성(periodicity)이라는 수학적 개념이 결합된 고급적인 주제였습니다. 교과서에서 다항식의 나머지 정리, 인수분해, 그리고 수열의 일반항과 점화식 등을 학습하며, ‘나머지’와 ‘주기’라는 개념이 어떻게 연결될 수 있는지에 대한 궁금증이 자연스럽게 생겼습니다. 실제로, 피보나치 수열의 각 항을 $n$으로 나누었을 때 주기성이 왜 발생하는지, 그리고 그 주기의 길이는 어떤 규칙을 따르는지에 대해 명확한 설명을 찾기 어려웠습니다. 이러한 의문이 본 탐구의 출발점이 되었습니다.
1.2. 탐구 목적
본 탐구의 목적은 피보나치 수열을 다양한 자연수 $n$으로 나누었을 때, 그 나머지로 이루어진 수열에서 나타나는 주기적 구조, 즉 피사노 주기를 직접 계산하고 분석하는 데 있습니다. 이를 통해 피사노 주기가 발생하는 수학적 원리와, $n$의 성질(예: 소수, 합성수)에 따라 주기 길이가 어떻게 변화하는지 구체적으로 탐구하고자 합니다. 또한, 실제로 다양한 $n$에 대해 피사노 주기를 계산해보고, 주기 길이의 패턴이나 규칙성을 발견함으로써, 수열·함수·나머지 연산 등 교과서에서 배운 여러 개념이 어떻게 융합되어 새로운 수학적 현상을 만들어내는지 경험하고자 합니다.특히, 본 탐구에서는 다음과 같은 핵심 질문에 집중합니다.
- 피보나치 수열의 모듈로 연산에서 주기성은 왜 나타나는가?
- 피사노 주기의 길이는 $n$에 따라 어떤 규칙이나 패턴을 가지는가?
- 소수와 합성수 등 $n$의 성질에 따라 주기 길이가 어떻게 달라지는가?
이러한 목표를 달성하기 위해, 직접 계산, 프로그래밍, 그리고 기존 연구의 비교 분석 등 다양한 방법을 활용하였습니다. 이를 통해 수학적 비판적 사고력과 창의적 문제 해결 능력을 기르고, 교과 지식을 실제 탐구에 적용하는 경험을 쌓고자 하였습니다.
1.3. 탐구 범위
본 탐구는 $n=2$부터 $n=10$까지의 다양한 자연수 $n$을 대상으로, 피보나치 수열의 각 항을 $n$으로 나눈 나머지로 이루어진 수열을 직접 계산하여 피사노 주기의 존재와 길이를 확인하였습니다. 이 과정에서 소수와 합성수 등 다양한 $n$을 포함시켜, 주기 길이의 변화와 그 수학적 원리를 분석하였습니다. 또한, 직접 계산한 결과를 온라인 자료 및 프로그래밍 결과와 비교하여 신뢰성을 높였으며, 피사노 주기의 일반적 성질과 패턴을 탐구하는 데 초점을 두었습니다.이와 같이, 본 보고서는 교과서에서 배운 수열, 함수, 나머지 연산 등 기본 개념을 바탕으로, 실제 수학적 현상을 깊이 있게 탐구함으로써 학습자로서의 성장과 수학적 사고의 확장을 동시에 추구하였습니다.
2. 이론적 배경 (Theoretical Background)
2.1. 교과 연계 및 이론적 확장
고등학교 수학 교과에서는 ‘수열’ 단원에서 수열의 정의, 일반항, 점화식 등 기본 구조를 다루며, ‘다항식’ 단원에서는 나머지 정리와 인수분해, 그리고 항등식의 성질을 학습한다. 특히, 수열의 각 항을 어떤 수로 나누었을 때의 나머지, 즉 모듈로 연산(modulo operation)은 ‘다항식의 나머지 정리’와도 연결된다. 예를 들어, 다항식 $P(x)$를 $x-a$로 나누었을 때의 나머지가 $P(a)$임을 배우며, 나머지의 반복성과 패턴에 대한 직관을 기를 수 있다.이러한 교과 내용은 피보나치 수열의 각 항을 자연수 $n$으로 나누었을 때, 나머지로 이루어진 새로운 수열의 구조적 특성을 이해하는 데 중요한 토대가 된다. 즉, 수열의 점화식 구조와 나머지 연산이 결합될 때, 유한한 상태공간에서 반복되는 패턴(주기성)이 필연적으로 등장한다는 사실을 예측할 수 있다. 본 연구에서는 이러한 교과 기반 개념을 출발점으로 하여, 피보나치 수열의 모듈로 연산에서 발생하는 주기성, 즉 피사노 주기의 수학적 원리와 그 패턴을 심화 탐구하고자 한다.
2.2. 피보나치 수열의 정의와 점화식 구조
피보나치 수열은 $F_0=0$, $F_1=1$에서 시작하여, $F_k=F_{k-1}+F_{k-2}$ ($k\geq2$)로 정의되는 점화수열이다. 이 점화식은 수열의 각 항이 앞의 두 항의 합으로 결정된다는 단순하면서도 강력한 구조를 지닌다. 교과서에서는 수열의 일반항을 구하거나, 점화식을 이용해 여러 항을 계산하는 방법을 다룬다. 또한, 수열을 함수로 해석하여, $f:\mathbb{N}\rightarrow\mathbb{R}$, $f(n)=a_n$과 같이 표현할 수 있음을 배운다.피보나치 수열의 점화식 구조는 모듈로 연산과 결합될 때, 수열의 상태가 ‘이전 두 항’에 의해 완전히 결정된다는 점에서, 유한한 상태공간을 가진 동적 시스템으로 해석할 수 있다. 즉, (이전 항, 현재 항)의 쌍이 한정된 개수만 존재하므로, 언젠가는 반드시 동일한 쌍이 다시 등장하게 된다. 이로 인해 주기성이 발생하는 근본적인 수학적 원리가 마련된다.
2.3. 모듈로 연산과 주기성의 수학적 원리
모듈로 연산은 ‘나머지 정리’와 밀접한 관련이 있다. 다항식 $P(x)$를 $x-a$로 나누었을 때의 나머지가 $P(a)$임을 배우듯, 수열의 각 항을 $n$으로 나누었을 때의 나머지 역시, 유한한 집합 내에서 반복되는 패턴을 가진다. 피보나치 수열에서 각 항을 $n$으로 나누면, 가능한 나머지의 조합은 $n\times n$가지(이전 항, 현재 항의 쌍)로 한정된다. 따라서, 비둘기집 원리(Pigeonhole Principle)에 따라, 충분히 많은 항을 계산하면 반드시 이전에 등장한 쌍이 반복된다.이때, 최초의 (0, 1) 쌍이 다시 등장하는 순간부터 주기가 시작된다. 이 현상은 고등학교 수학에서 배우는 ‘수열의 유한 상태공간’과 ‘함수의 그래프에서의 반복성’ 개념과도 연결된다. 그러나 교과서에서는 이러한 주기성의 일반적 증명이나 주기 길이에 대한 공식은 다루지 않으며, 이는 여전히 수학적 연구의 대상이다.
2.4. 피사노 주기의 정의와 기존 연구 동향
피사노 주기(Pisano period)란, 피보나치 수열을 자연수 $n$으로 나누었을 때, 나머지로 이루어진 수열이 반복되는 최소 주기를 의미한다. 수학적으로, 최소의 양의 정수 $\pi(n)$에 대해 $F_{k+\pi(n)}\equiv F_k\pmod{n}$ 가 모든 $k$에 대해 성립한다. 피사노 주기는 수론, 암호학, 난수 생성, 컴퓨터 알고리즘 등 다양한 분야에서 응용된다.기존 연구에 따르면, 피사노 주기의 길이는 $n$의 소수성, 합성수성, 그리고 소인수 분해 결과와 밀접한 관련이 있지만, 모든 $n$에 대한 일반 공식은 알려져 있지 않다. 예를 들어, $n$이 소수일 때 주기 길이는 비교적 불규칙하며, 합성수일 때는 소인수의 주기와 연관성을 보이기도 한다. 또한, 피사노 주기의 길이는 $n$이 커질수록 대체로 길어지는 경향이 있으나, 예외적인 경우도 존재한다(예: $n=5$일 때 주기 20, $n=10$일 때 주기 60 등).최근에는 피사노 주기의 패턴, 주기 길이의 상한/하한, 그리고 특정 $n$에 대한 주기 예측 알고리즘 등이 활발히 연구되고 있다. 그러나, 주기 길이의 정확한 예측이나 일반화된 수식은 여전히 미해결 문제로 남아 있다. 본 연구에서는 이러한 이론적 배경을 바탕으로, 실제 계산과 실험을 통해 피사노 주기의 패턴과 특징을 직접 관찰하고자 한다.
3. 연구 방법 (Methods)
3.1. 연구 설계 (Research Design)
본 연구는 피보나치 수열의 모듈로 연산에서 나타나는 주기성(피사노 주기)의 존재와 그 길이를 직접 확인하고, $n$의 성질에 따라 주기 길이가 어떻게 변화하는지 분석하는 것을 목적으로 한다. 이를 위해 실험적·관찰적 접근을 결합하였다. 구체적으로, $n=2$부터 $n=10$까지의 다양한 자연수 $n$을 선정하여, 각 $n$에 대해 피보나치 수열의 각 항을 $n$으로 나눈 나머지 수열을 직접 계산하였다. 이 과정에서, (이전 항, 현재 항) 쌍의 반복을 관찰하여 최초의 (0, 1) 쌍이 다시 등장하는 시점을 주기 길이로 정의하였다.또한, 직접 계산 결과를 온라인 자료(문제 풀이, 논문, 블로그 등) 및 간단한 프로그래밍 결과와 비교하여 신뢰성을 확보하였다. 실험의 독립변수는 $n$의 값, 종속변수는 피사노 주기의 길이, 통제변수는 피보나치 수열의 점화식 및 초기값(0, 1)으로 설정하였다.
3.2. 자료 수집 및 선정 기준 (Data Collection & Selection)
직접 계산: $n=2$부터 $n=10$까지 각 $n$에 대해, 피보나치 수열의 항을 차례로 구하고, 각 항을 $n$으로 나눈 나머지를 기록하였다.
온라인 자료 참고: 백준 온라인 저지, 수학 블로그 등 신뢰할 수 있는 온라인 자료에서 제공하는 피사노 주기 계산 결과와 비교하였다.
프로그래밍 활용: JavaScript로 피사노 주기를 자동 계산하는 간단한 코드를 작성하여, 직접 계산의 정확성을 검증하였다.
선정 기준: 교과 과정에서 다루는 범위 내의 자연수 $n$을 우선적으로 선정하였으며, 소수와 합성수를 고르게 포함하였다.
3.3. 분석 방법 (Analysis Methods)
주기 길이 측정: 각 $n$에 대해, 피보나치 수열의 나머지 수열에서 (0, 1) 쌍이 처음 반복되는 시점까지의 항의 개수를 세어 주기 길이를 산출하였다.
패턴 분석: 주기 내의 나머지 수열을 표와 그래프로 시각화하여, 반복 구조와 패턴을 분석하였다.
소수/합성수 비교: $n$의 소수성, 합성수성에 따른 주기 길이의 차이와 특징을 비교 분석하였다.
결과 검증: 직접 계산 결과와 프로그래밍 결과, 그리고 온라인 자료 결과를 상호 비교하여 일치 여부를 확인하였다.
통계적 해석: 주기 길이의 변화 추이와 $n$의 성질 간의 관계를 표와 간단한 통계(최대, 최소, 평균 등)로 요약하였다.
3.4. 데이터 분석 방법 (Data Analysis Methods)
정량적 분석: 각 $n$별로 산출된 피사노 주기 길이를 표로 정리하고, 소수/합성수 그룹별로 비교하였다.
시각적 분석: 나머지 수열의 반복 패턴을 그래프(막대그래프, 선그래프 등)로 시각화하여, 주기성과 패턴의 특징을 직관적으로 파악하였다.
프로그래밍 활용: JavaScript 등으로 구현한 피사노 주기 계산 코드를 통해, 반복적이고 오류 없는 데이터 수집을 보조하였다.
비판적 검토: 계산 과정에서 발생할 수 있는 오류(예: 주기 시작점 오인, 계산 실수 등)를 반복 검증과 교차 비교로 최소화하였다.이와 같은 방법론을 통해, 고등학교 수준에서 현실적으로 실현 가능한 수준의 실험과 분석을 수행하였으며, 연구 결과의 신뢰성과 재현 가능성을 높이고자 하였다.
4. 결과 (Results)
4.1. n별 피사노 주기 계산 결과 표
| n | 피사노 주기 길이 ($\pi(n)$) |
|---|---|
| 2 | 3 |
| 3 | 8 |
| 4 | 6 |
| 5 | 20 |
| 6 | 24 |
| 7 | 16 |
| 8 | 12 |
| 9 | 24 |
| 10 | 60 |
각 값은 (0, 1) 쌍이 최초로 다시 등장하는 시점까지의 항 개수를 직접 세어 결정하였습니다. 예를 들어, $n=2$의 경우, 수열은 0, 1, 1, 0, 1, 1, ...이 반복되며, (0, 1) 쌍이 3번째 항에서 다시 등장하므로 주기 길이는 3입니다. $n=3$의 경우, 수열은 0, 1, 1, 2, 0, 2, 2, 1, ...이 8개마다 반복됨을 확인하였습니다.

그래프는 $n=2$부터 $n=10$까지의 피사노 주기 길이의 분포를 시각적으로 보여줍니다. $n$이 커질수록 주기 길이가 대체로 증가하지만, 불규칙한 변화와 예외적인 값도 존재함을 알 수 있습니다.
4.2. 소수/합성수에 따른 주기 길이의 특징
$n$이 소수(2, 3, 5, 7)일 때의 주기 길이는 각각 3, 8, 20, 16으로, 서로 상이하며 일정한 패턴을 보이지 않았습니다. $n$이 합성수(4, 6, 8, 9, 10)일 때의 주기 길이는 각각 6, 24, 12, 24, 60으로, 소인수의 주기와 연관된 경향이 관찰되었습니다. 예시로 $n=6$의 경우, $n=2$의 주기(3)와 $n=3$의 주기(8)의 최소공배수는 24로, 실제 주기 길이와 일치합니다. 계산: $\mathrm{LCM}(3,8)=24$.
4.3. 반복 패턴의 시각화
$n=3$과 $n=5$의 나머지 수열은 다음과 같습니다.
$n=3$: 0, 1, 1, 2, 0, 2, 2, 1, (이후 반복)
$n=5$: 0, 1, 1, 2, 3, 0, 3, 3, 1, 4, 0, 4, 4, 3, 2, 0, 2, 2, 4, 1, (이후 반복)
이러한 반복 구조는 그래프와 표를 통해 주기적 패턴이 명확하게 드러남을 확인할 수 있습니다.
4.4. 실제 계산 과정 및 코드 예시
직접 계산과 더불어, 아래와 같은 JavaScript 코드를 활용하여 피사노 주기를 자동으로 산출하였습니다.
function getPisanoPeriod(n) {
let prev = 0, curr = 1, period = 0;
do {
let next = (prev + curr) % n;
prev = curr;
curr = next;
period++;
} while (!(prev === 0 && curr === 1));
return period;
}
console.log(getPisanoPeriod(7)); // 출력: 16
해당 코드를 통해 $n=7$에서 16, $n=10$에서 60 등, 직접 계산한 결과와 일치함을 확인하였습니다.
5. 논의 및 결론 (Discussion & Conclusion)
5.1. 수치 결과의 학술적 해석
본 연구에서 산출한 피사노 주기 길이 데이터는 피보나치 수열의 모듈로 연산이 유한 상태공간에서 동작함을 실증적으로 보여줍니다. 예를 들어, $n=6$에서 주기 길이 24는 $n=2$와 $n=3$의 주기 길이(3, 8)의 최소공배수와 정확히 일치합니다(계산: $\mathrm{LCM}(3,8)=24$). 이는 합성수의 경우, 각 소인수의 피사노 주기가 전체 주기 구조에 영향을 미침을 시사합니다. 한편, 소수 $n$에서는 주기 길이가 불규칙적으로 변하며, 예측이 쉽지 않음을 수치적으로 확인하였습니다.주기 길이의 분포는 $n$이 커질수록 대체로 증가하는 경향을 보였으나, $n=7$의 경우 16, $n=8$의 경우 12 등 예외도 존재하였습니다. 이는 피사노 주기 길이가 단순히 $n$의 크기에 비례하지 않음을 의미합니다. 또한, 각 $n$에 대해 직접 산출한 주기 길이의 표준편차는 다음과 같습니다.
평균 주기 길이 = $(3+8+6+20+24+16+12+24+60)/9=19.2$
표준편차($\sigma$) $\approx17.0$
즉, 데이터의 변동성이 상당히 크다는 점을 보여줍니다.
5.2. 이론적 배경과의 연결 및 기존 연구와의 비교
피사노 주기의 존재는 피보나치 수열의 점화식과 모듈로 연산의 결합에서 비롯됩니다. (이전 항, 현재 항)의 쌍이 $n\times n$가지로 유한하므로, 비둘기집 원리에 의해 반드시 반복이 발생합니다. 본 연구의 결과는 이러한 이론적 배경과 일치하며, 실제로 (0, 1) 쌍이 다시 등장하는 시점에서 주기가 완전히 반복됨을 수치적으로 확인하였습니다.기존 연구에 따르면, 합성수 $n$의 피사노 주기는 소인수의 주기와 밀접한 관련이 있으나, 정확한 일반 공식은 알려져 있지 않습니다. 본 연구의 $n=6$과 $n=10$ 결과는 이러한 경향을 뚜렷하게 보여줍니다. 반면, 소수 $n$의 경우 주기 길이가 불규칙적으로 변하는 현상 역시 기존 문헌과 일치합니다.
5.3. 방법론적 성찰과 한계 분석
본 연구는 직접 계산, 프로그래밍, 그리고 신뢰도 높은 온라인 자료의 교차 검증을 통해 데이터의 신뢰성과 재현 가능성을 높였습니다. JavaScript 코드의 자동 반복 계산은 수작업의 오류 가능성을 줄이고, 대량의 데이터를 신속하게 산출하는 데 기여하였습니다. 그러나, $n$이 10을 초과하는 큰 값에 대해서는 직접 계산의 한계와 시간적 제약이 존재하였습니다. 또한, 주기 길이의 일반 공식이나, 특정 $n$에 대한 이론적 예측은 본 연구 범위를 넘어서는 주제임을 확인하였습니다.향후 연구에서는 더 큰 $n$에 대한 주기 계산, 피사노 주기의 수론적 증명, 그리고 암호학·난수 생성 등 실제 응용 분야에서의 활용 가능성까지 확장할 필요가 있습니다. 또한, 주기 길이의 분포와 $n$의 소인수 구조 간의 함수적 관계를 수학적으로 모델링하는 것이 중요한 과제로 남습니다.
5.4. 학문적 함의 및 실용적 확장
본 연구는 고등학교 수준의 수열, 나머지 연산, 점화식 개념을 실제 수학적 탐구에 적용함으로써, 추상적 이론이 구체적 수치와 패턴으로 구현되는 과정을 보여주었습니다. 피사노 주기의 실험적 분석은 수론, 암호학, 컴퓨터 알고리즘 등 다양한 분야에서의 응용 가능성을 시사합니다. 예를 들어, 피사노 주기의 불규칙성과 예측 불가능성은 난수 생성, 암호키 설계 등에서 활용될 수 있습니다. 또한, 본 연구에서 사용한 계산 및 프로그래밍 방법은 향후 더 복잡한 수학적 문제 해결에도 적용할 수 있는 기초 역량으로 이어질 수 있습니다. 마지막으로, 수학적 호기심을 바탕으로 한 탐구 과정 자체가 교과 지식의 실제적 의미와 확장 가능성을 체감하는 소중한 경험이 되었습니다.
6. 참고 문헌
[1] Halliday, D., Resnick, R., & Walker, J. (2013). Fundamentals of Physics (10th ed.). Wiley.
[2] Weisstein, E. W. (2024). Pisano Period. From MathWorld—A Wolfram Web Resource.
[3] Koshy, T. (2001). Fibonacci and Lucas Numbers with Applications. Wiley.
[4] 백준 온라인 저지. 9471번 - 피사노 주기. https://www.acmicpc.net/problem/9471
[5] 피보나치 수 주기, 피사노 주기(Pisano Period). https://blog.naver.com/easeon11/221706328072?viewType=pc
[6] 피사노 주기 알아보기. https://velog.io/@chisae/%ED%94%BC%EC%82%AC%EB%85%B8-%EC%A3%BC%EA%B8%B0-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0
[7] 피보나치 수의 주기 - 피사노 주기. https://goldenriver42.tistory.com/139
[8] 피보나치 수열 : 피사노 주기 직접 찾아서 문제 풀기. https://restudycafe.tistory.com/524
전교 1등 수준 탐구보고서 나도 직접 써 보기
댓글
첫 댓글을 남겨주세요
게시판
피보나치 수열의 피사노 주기: 모듈로 연산에서 나타나는 주기성의 수학적 탐구
수학1 수열 단원 탐구보고서
피보나치 수열 탐구의 깊이 향상
피보나치 수열의 피사노 주기: 모듈로 연산에서 나타나는 주기성의 수학적 탐구
1. 서론 (Introduction)
수학을 공부하면서 피보나치 수열은 단순한 수의 나열을 넘어 자연, 예술, 공학 등 다양한 분야에서 반복적으로 등장한다는 점에서 깊은 인상을 주었습니다. 특히 고등학교 수학 교과 과정에서 수열의 정의, 점화식, 일반항, 그리고 수열의 성질을 학습하면서, 피보나치 수열이 갖는 구조적 아름다움과 수학적 깊이에 매료되었습니다. 이러한 관심은 단순히 피보나치 수열의 각 항을 계산하거나 황금비와의 관계를 탐구하는 데 그치지 않고, 수열의 항을 어떤 자연수 $n$으로 나누었을 때 나타나는 새로운 패턴, 즉 ‘주기성’에 대한 호기심으로 이어졌습니다.특히, 수열의 각 항을 $n$으로 나눈 나머지로 이루어진 새로운 수열이 일정한 길이마다 반복된다는 사실, 즉 피사노 주기(Pisano period)가 존재한다는 점은 매우 흥미로웠습니다. 이는 단순한 수열의 계산을 넘어, 모듈로 연산(modulo operation)과 주기성(periodicity)이라는 수학적 개념이 결합된 고급적인 주제였습니다. 교과서에서 다항식의 나머지 정리, 인수분해, 그리고 수열의 일반항과 점화식 등을 학습하며, ‘나머지’와 ‘주기’라는 개념이 어떻게 연결될 수 있는지에 대한 궁금증이 자연스럽게 생겼습니다. 실제로, 피보나치 수열의 각 항을 $n$으로 나누었을 때 주기성이 왜 발생하는지, 그리고 그 주기의 길이는 어떤 규칙을 따르는지에 대해 명확한 설명을 찾기 어려웠습니다. 이러한 의문이 본 탐구의 출발점이 되었습니다.
1.2. 탐구 목적
본 탐구의 목적은 피보나치 수열을 다양한 자연수 $n$으로 나누었을 때, 그 나머지로 이루어진 수열에서 나타나는 주기적 구조, 즉 피사노 주기를 직접 계산하고 분석하는 데 있습니다. 이를 통해 피사노 주기가 발생하는 수학적 원리와, $n$의 성질(예: 소수, 합성수)에 따라 주기 길이가 어떻게 변화하는지 구체적으로 탐구하고자 합니다. 또한, 실제로 다양한 $n$에 대해 피사노 주기를 계산해보고, 주기 길이의 패턴이나 규칙성을 발견함으로써, 수열·함수·나머지 연산 등 교과서에서 배운 여러 개념이 어떻게 융합되어 새로운 수학적 현상을 만들어내는지 경험하고자 합니다.특히, 본 탐구에서는 다음과 같은 핵심 질문에 집중합니다.
- 피보나치 수열의 모듈로 연산에서 주기성은 왜 나타나는가?
- 피사노 주기의 길이는 $n$에 따라 어떤 규칙이나 패턴을 가지는가?
- 소수와 합성수 등 $n$의 성질에 따라 주기 길이가 어떻게 달라지는가?
이러한 목표를 달성하기 위해, 직접 계산, 프로그래밍, 그리고 기존 연구의 비교 분석 등 다양한 방법을 활용하였습니다. 이를 통해 수학적 비판적 사고력과 창의적 문제 해결 능력을 기르고, 교과 지식을 실제 탐구에 적용하는 경험을 쌓고자 하였습니다.
1.3. 탐구 범위
본 탐구는 $n=2$부터 $n=10$까지의 다양한 자연수 $n$을 대상으로, 피보나치 수열의 각 항을 $n$으로 나눈 나머지로 이루어진 수열을 직접 계산하여 피사노 주기의 존재와 길이를 확인하였습니다. 이 과정에서 소수와 합성수 등 다양한 $n$을 포함시켜, 주기 길이의 변화와 그 수학적 원리를 분석하였습니다. 또한, 직접 계산한 결과를 온라인 자료 및 프로그래밍 결과와 비교하여 신뢰성을 높였으며, 피사노 주기의 일반적 성질과 패턴을 탐구하는 데 초점을 두었습니다.이와 같이, 본 보고서는 교과서에서 배운 수열, 함수, 나머지 연산 등 기본 개념을 바탕으로, 실제 수학적 현상을 깊이 있게 탐구함으로써 학습자로서의 성장과 수학적 사고의 확장을 동시에 추구하였습니다.
2. 이론적 배경 (Theoretical Background)
2.1. 교과 연계 및 이론적 확장
고등학교 수학 교과에서는 ‘수열’ 단원에서 수열의 정의, 일반항, 점화식 등 기본 구조를 다루며, ‘다항식’ 단원에서는 나머지 정리와 인수분해, 그리고 항등식의 성질을 학습한다. 특히, 수열의 각 항을 어떤 수로 나누었을 때의 나머지, 즉 모듈로 연산(modulo operation)은 ‘다항식의 나머지 정리’와도 연결된다. 예를 들어, 다항식 $P(x)$를 $x-a$로 나누었을 때의 나머지가 $P(a)$임을 배우며, 나머지의 반복성과 패턴에 대한 직관을 기를 수 있다.이러한 교과 내용은 피보나치 수열의 각 항을 자연수 $n$으로 나누었을 때, 나머지로 이루어진 새로운 수열의 구조적 특성을 이해하는 데 중요한 토대가 된다. 즉, 수열의 점화식 구조와 나머지 연산이 결합될 때, 유한한 상태공간에서 반복되는 패턴(주기성)이 필연적으로 등장한다는 사실을 예측할 수 있다. 본 연구에서는 이러한 교과 기반 개념을 출발점으로 하여, 피보나치 수열의 모듈로 연산에서 발생하는 주기성, 즉 피사노 주기의 수학적 원리와 그 패턴을 심화 탐구하고자 한다.
2.2. 피보나치 수열의 정의와 점화식 구조
피보나치 수열은 $F_0=0$, $F_1=1$에서 시작하여, $F_k=F_{k-1}+F_{k-2}$ ($k\geq2$)로 정의되는 점화수열이다. 이 점화식은 수열의 각 항이 앞의 두 항의 합으로 결정된다는 단순하면서도 강력한 구조를 지닌다. 교과서에서는 수열의 일반항을 구하거나, 점화식을 이용해 여러 항을 계산하는 방법을 다룬다. 또한, 수열을 함수로 해석하여, $f:\mathbb{N}\rightarrow\mathbb{R}$, $f(n)=a_n$과 같이 표현할 수 있음을 배운다.피보나치 수열의 점화식 구조는 모듈로 연산과 결합될 때, 수열의 상태가 ‘이전 두 항’에 의해 완전히 결정된다는 점에서, 유한한 상태공간을 가진 동적 시스템으로 해석할 수 있다. 즉, (이전 항, 현재 항)의 쌍이 한정된 개수만 존재하므로, 언젠가는 반드시 동일한 쌍이 다시 등장하게 된다. 이로 인해 주기성이 발생하는 근본적인 수학적 원리가 마련된다.
2.3. 모듈로 연산과 주기성의 수학적 원리
모듈로 연산은 ‘나머지 정리’와 밀접한 관련이 있다. 다항식 $P(x)$를 $x-a$로 나누었을 때의 나머지가 $P(a)$임을 배우듯, 수열의 각 항을 $n$으로 나누었을 때의 나머지 역시, 유한한 집합 내에서 반복되는 패턴을 가진다. 피보나치 수열에서 각 항을 $n$으로 나누면, 가능한 나머지의 조합은 $n\times n$가지(이전 항, 현재 항의 쌍)로 한정된다. 따라서, 비둘기집 원리(Pigeonhole Principle)에 따라, 충분히 많은 항을 계산하면 반드시 이전에 등장한 쌍이 반복된다.이때, 최초의 (0, 1) 쌍이 다시 등장하는 순간부터 주기가 시작된다. 이 현상은 고등학교 수학에서 배우는 ‘수열의 유한 상태공간’과 ‘함수의 그래프에서의 반복성’ 개념과도 연결된다. 그러나 교과서에서는 이러한 주기성의 일반적 증명이나 주기 길이에 대한 공식은 다루지 않으며, 이는 여전히 수학적 연구의 대상이다.
2.4. 피사노 주기의 정의와 기존 연구 동향
피사노 주기(Pisano period)란, 피보나치 수열을 자연수 $n$으로 나누었을 때, 나머지로 이루어진 수열이 반복되는 최소 주기를 의미한다. 수학적으로, 최소의 양의 정수 $\pi(n)$에 대해 $F_{k+\pi(n)}\equiv F_k\pmod{n}$ 가 모든 $k$에 대해 성립한다. 피사노 주기는 수론, 암호학, 난수 생성, 컴퓨터 알고리즘 등 다양한 분야에서 응용된다.기존 연구에 따르면, 피사노 주기의 길이는 $n$의 소수성, 합성수성, 그리고 소인수 분해 결과와 밀접한 관련이 있지만, 모든 $n$에 대한 일반 공식은 알려져 있지 않다. 예를 들어, $n$이 소수일 때 주기 길이는 비교적 불규칙하며, 합성수일 때는 소인수의 주기와 연관성을 보이기도 한다. 또한, 피사노 주기의 길이는 $n$이 커질수록 대체로 길어지는 경향이 있으나, 예외적인 경우도 존재한다(예: $n=5$일 때 주기 20, $n=10$일 때 주기 60 등).최근에는 피사노 주기의 패턴, 주기 길이의 상한/하한, 그리고 특정 $n$에 대한 주기 예측 알고리즘 등이 활발히 연구되고 있다. 그러나, 주기 길이의 정확한 예측이나 일반화된 수식은 여전히 미해결 문제로 남아 있다. 본 연구에서는 이러한 이론적 배경을 바탕으로, 실제 계산과 실험을 통해 피사노 주기의 패턴과 특징을 직접 관찰하고자 한다.
3. 연구 방법 (Methods)
3.1. 연구 설계 (Research Design)
본 연구는 피보나치 수열의 모듈로 연산에서 나타나는 주기성(피사노 주기)의 존재와 그 길이를 직접 확인하고, $n$의 성질에 따라 주기 길이가 어떻게 변화하는지 분석하는 것을 목적으로 한다. 이를 위해 실험적·관찰적 접근을 결합하였다. 구체적으로, $n=2$부터 $n=10$까지의 다양한 자연수 $n$을 선정하여, 각 $n$에 대해 피보나치 수열의 각 항을 $n$으로 나눈 나머지 수열을 직접 계산하였다. 이 과정에서, (이전 항, 현재 항) 쌍의 반복을 관찰하여 최초의 (0, 1) 쌍이 다시 등장하는 시점을 주기 길이로 정의하였다.또한, 직접 계산 결과를 온라인 자료(문제 풀이, 논문, 블로그 등) 및 간단한 프로그래밍 결과와 비교하여 신뢰성을 확보하였다. 실험의 독립변수는 $n$의 값, 종속변수는 피사노 주기의 길이, 통제변수는 피보나치 수열의 점화식 및 초기값(0, 1)으로 설정하였다.
3.2. 자료 수집 및 선정 기준 (Data Collection & Selection)
직접 계산: $n=2$부터 $n=10$까지 각 $n$에 대해, 피보나치 수열의 항을 차례로 구하고, 각 항을 $n$으로 나눈 나머지를 기록하였다.
온라인 자료 참고: 백준 온라인 저지, 수학 블로그 등 신뢰할 수 있는 온라인 자료에서 제공하는 피사노 주기 계산 결과와 비교하였다.
프로그래밍 활용: JavaScript로 피사노 주기를 자동 계산하는 간단한 코드를 작성하여, 직접 계산의 정확성을 검증하였다.
선정 기준: 교과 과정에서 다루는 범위 내의 자연수 $n$을 우선적으로 선정하였으며, 소수와 합성수를 고르게 포함하였다.
3.3. 분석 방법 (Analysis Methods)
주기 길이 측정: 각 $n$에 대해, 피보나치 수열의 나머지 수열에서 (0, 1) 쌍이 처음 반복되는 시점까지의 항의 개수를 세어 주기 길이를 산출하였다.
패턴 분석: 주기 내의 나머지 수열을 표와 그래프로 시각화하여, 반복 구조와 패턴을 분석하였다.
소수/합성수 비교: $n$의 소수성, 합성수성에 따른 주기 길이의 차이와 특징을 비교 분석하였다.
결과 검증: 직접 계산 결과와 프로그래밍 결과, 그리고 온라인 자료 결과를 상호 비교하여 일치 여부를 확인하였다.
통계적 해석: 주기 길이의 변화 추이와 $n$의 성질 간의 관계를 표와 간단한 통계(최대, 최소, 평균 등)로 요약하였다.
3.4. 데이터 분석 방법 (Data Analysis Methods)
정량적 분석: 각 $n$별로 산출된 피사노 주기 길이를 표로 정리하고, 소수/합성수 그룹별로 비교하였다.
시각적 분석: 나머지 수열의 반복 패턴을 그래프(막대그래프, 선그래프 등)로 시각화하여, 주기성과 패턴의 특징을 직관적으로 파악하였다.
프로그래밍 활용: JavaScript 등으로 구현한 피사노 주기 계산 코드를 통해, 반복적이고 오류 없는 데이터 수집을 보조하였다.
비판적 검토: 계산 과정에서 발생할 수 있는 오류(예: 주기 시작점 오인, 계산 실수 등)를 반복 검증과 교차 비교로 최소화하였다.이와 같은 방법론을 통해, 고등학교 수준에서 현실적으로 실현 가능한 수준의 실험과 분석을 수행하였으며, 연구 결과의 신뢰성과 재현 가능성을 높이고자 하였다.
4. 결과 (Results)
4.1. n별 피사노 주기 계산 결과 표
| n | 피사노 주기 길이 ($\pi(n)$) |
|---|---|
| 2 | 3 |
| 3 | 8 |
| 4 | 6 |
| 5 | 20 |
| 6 | 24 |
| 7 | 16 |
| 8 | 12 |
| 9 | 24 |
| 10 | 60 |
각 값은 (0, 1) 쌍이 최초로 다시 등장하는 시점까지의 항 개수를 직접 세어 결정하였습니다. 예를 들어, $n=2$의 경우, 수열은 0, 1, 1, 0, 1, 1, ...이 반복되며, (0, 1) 쌍이 3번째 항에서 다시 등장하므로 주기 길이는 3입니다. $n=3$의 경우, 수열은 0, 1, 1, 2, 0, 2, 2, 1, ...이 8개마다 반복됨을 확인하였습니다.

그래프는 $n=2$부터 $n=10$까지의 피사노 주기 길이의 분포를 시각적으로 보여줍니다. $n$이 커질수록 주기 길이가 대체로 증가하지만, 불규칙한 변화와 예외적인 값도 존재함을 알 수 있습니다.
4.2. 소수/합성수에 따른 주기 길이의 특징
$n$이 소수(2, 3, 5, 7)일 때의 주기 길이는 각각 3, 8, 20, 16으로, 서로 상이하며 일정한 패턴을 보이지 않았습니다. $n$이 합성수(4, 6, 8, 9, 10)일 때의 주기 길이는 각각 6, 24, 12, 24, 60으로, 소인수의 주기와 연관된 경향이 관찰되었습니다. 예시로 $n=6$의 경우, $n=2$의 주기(3)와 $n=3$의 주기(8)의 최소공배수는 24로, 실제 주기 길이와 일치합니다. 계산: $\mathrm{LCM}(3,8)=24$.
4.3. 반복 패턴의 시각화
$n=3$과 $n=5$의 나머지 수열은 다음과 같습니다.
$n=3$: 0, 1, 1, 2, 0, 2, 2, 1, (이후 반복)
$n=5$: 0, 1, 1, 2, 3, 0, 3, 3, 1, 4, 0, 4, 4, 3, 2, 0, 2, 2, 4, 1, (이후 반복)
이러한 반복 구조는 그래프와 표를 통해 주기적 패턴이 명확하게 드러남을 확인할 수 있습니다.
4.4. 실제 계산 과정 및 코드 예시
직접 계산과 더불어, 아래와 같은 JavaScript 코드를 활용하여 피사노 주기를 자동으로 산출하였습니다.
function getPisanoPeriod(n) {
let prev = 0, curr = 1, period = 0;
do {
let next = (prev + curr) % n;
prev = curr;
curr = next;
period++;
} while (!(prev === 0 && curr === 1));
return period;
}
console.log(getPisanoPeriod(7)); // 출력: 16
해당 코드를 통해 $n=7$에서 16, $n=10$에서 60 등, 직접 계산한 결과와 일치함을 확인하였습니다.
5. 논의 및 결론 (Discussion & Conclusion)
5.1. 수치 결과의 학술적 해석
본 연구에서 산출한 피사노 주기 길이 데이터는 피보나치 수열의 모듈로 연산이 유한 상태공간에서 동작함을 실증적으로 보여줍니다. 예를 들어, $n=6$에서 주기 길이 24는 $n=2$와 $n=3$의 주기 길이(3, 8)의 최소공배수와 정확히 일치합니다(계산: $\mathrm{LCM}(3,8)=24$). 이는 합성수의 경우, 각 소인수의 피사노 주기가 전체 주기 구조에 영향을 미침을 시사합니다. 한편, 소수 $n$에서는 주기 길이가 불규칙적으로 변하며, 예측이 쉽지 않음을 수치적으로 확인하였습니다.주기 길이의 분포는 $n$이 커질수록 대체로 증가하는 경향을 보였으나, $n=7$의 경우 16, $n=8$의 경우 12 등 예외도 존재하였습니다. 이는 피사노 주기 길이가 단순히 $n$의 크기에 비례하지 않음을 의미합니다. 또한, 각 $n$에 대해 직접 산출한 주기 길이의 표준편차는 다음과 같습니다.
평균 주기 길이 = $(3+8+6+20+24+16+12+24+60)/9=19.2$
표준편차($\sigma$) $\approx17.0$
즉, 데이터의 변동성이 상당히 크다는 점을 보여줍니다.
5.2. 이론적 배경과의 연결 및 기존 연구와의 비교
피사노 주기의 존재는 피보나치 수열의 점화식과 모듈로 연산의 결합에서 비롯됩니다. (이전 항, 현재 항)의 쌍이 $n\times n$가지로 유한하므로, 비둘기집 원리에 의해 반드시 반복이 발생합니다. 본 연구의 결과는 이러한 이론적 배경과 일치하며, 실제로 (0, 1) 쌍이 다시 등장하는 시점에서 주기가 완전히 반복됨을 수치적으로 확인하였습니다.기존 연구에 따르면, 합성수 $n$의 피사노 주기는 소인수의 주기와 밀접한 관련이 있으나, 정확한 일반 공식은 알려져 있지 않습니다. 본 연구의 $n=6$과 $n=10$ 결과는 이러한 경향을 뚜렷하게 보여줍니다. 반면, 소수 $n$의 경우 주기 길이가 불규칙적으로 변하는 현상 역시 기존 문헌과 일치합니다.
5.3. 방법론적 성찰과 한계 분석
본 연구는 직접 계산, 프로그래밍, 그리고 신뢰도 높은 온라인 자료의 교차 검증을 통해 데이터의 신뢰성과 재현 가능성을 높였습니다. JavaScript 코드의 자동 반복 계산은 수작업의 오류 가능성을 줄이고, 대량의 데이터를 신속하게 산출하는 데 기여하였습니다. 그러나, $n$이 10을 초과하는 큰 값에 대해서는 직접 계산의 한계와 시간적 제약이 존재하였습니다. 또한, 주기 길이의 일반 공식이나, 특정 $n$에 대한 이론적 예측은 본 연구 범위를 넘어서는 주제임을 확인하였습니다.향후 연구에서는 더 큰 $n$에 대한 주기 계산, 피사노 주기의 수론적 증명, 그리고 암호학·난수 생성 등 실제 응용 분야에서의 활용 가능성까지 확장할 필요가 있습니다. 또한, 주기 길이의 분포와 $n$의 소인수 구조 간의 함수적 관계를 수학적으로 모델링하는 것이 중요한 과제로 남습니다.
5.4. 학문적 함의 및 실용적 확장
본 연구는 고등학교 수준의 수열, 나머지 연산, 점화식 개념을 실제 수학적 탐구에 적용함으로써, 추상적 이론이 구체적 수치와 패턴으로 구현되는 과정을 보여주었습니다. 피사노 주기의 실험적 분석은 수론, 암호학, 컴퓨터 알고리즘 등 다양한 분야에서의 응용 가능성을 시사합니다. 예를 들어, 피사노 주기의 불규칙성과 예측 불가능성은 난수 생성, 암호키 설계 등에서 활용될 수 있습니다. 또한, 본 연구에서 사용한 계산 및 프로그래밍 방법은 향후 더 복잡한 수학적 문제 해결에도 적용할 수 있는 기초 역량으로 이어질 수 있습니다. 마지막으로, 수학적 호기심을 바탕으로 한 탐구 과정 자체가 교과 지식의 실제적 의미와 확장 가능성을 체감하는 소중한 경험이 되었습니다.
6. 참고 문헌
[1] Halliday, D., Resnick, R., & Walker, J. (2013). Fundamentals of Physics (10th ed.). Wiley.
[2] Weisstein, E. W. (2024). Pisano Period. From MathWorld—A Wolfram Web Resource.
[3] Koshy, T. (2001). Fibonacci and Lucas Numbers with Applications. Wiley.
[4] 백준 온라인 저지. 9471번 - 피사노 주기. https://www.acmicpc.net/problem/9471
[5] 피보나치 수 주기, 피사노 주기(Pisano Period). https://blog.naver.com/easeon11/221706328072?viewType=pc
[6] 피사노 주기 알아보기. https://velog.io/@chisae/%ED%94%BC%EC%82%AC%EB%85%B8-%EC%A3%BC%EA%B8%B0-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0
[7] 피보나치 수의 주기 - 피사노 주기. https://goldenriver42.tistory.com/139
[8] 피보나치 수열 : 피사노 주기 직접 찾아서 문제 풀기. https://restudycafe.tistory.com/524
전교 1등 수준 탐구보고서 나도 직접 써 보기
댓글
첫 댓글을 남겨주세요