2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

강의자료/정보영재

프렉탈이란?

원당컴1 2019. 12. 4. 13:29

정보과목을 접하다 보면 프렉탈이란 용어를 자주 접하게 됩니다.

프로그래밍을 하는 학생들에게는 재귀함수라는 말이 오히려 이해 하기 더 쉬울것 같은데요.

바로 작은 구조를 이용해서 큰 구조를 만들어 가는 것을 프랙탈이라고 합니다.

 

예를 들어 칸토어 먼지는 사각형 하나를 기준으로 사각형 4개가 사각형이 되는 구조를 가지고 있고 다시 또 그 4각형 4개가 다시 사각형을 만드는 구조를 지니고 있습니다.

 

칸토어먼지 

그렇다면 이러한 프랙탈의 창시자는 누구일까요?

프랙탈 이론은 1960년대 프랑스 수학자 B.B. 만델브로트 박사에 의해 창안되었다고 해요.

만델브로트 박사는 울퉁불퉁한 바위로 이루어진 해안선의 길이가 궁금해져서 바위를 단계적으로 확대해서 들여다 보았는데 마치 나뭇가지처럼 비슷한 모양이 계속 반복되는 사실을 발견했습니다.

1967년에 만델브로트 박사는 "영국 해안선의 길이는 얼마나 되는가?" 라는 화두를 제시하였는데 영국 해안선은 리아스식 해안선이라고 하는데 리아스식 해안선은 그 길이를 측정하는 방법에 따라 엄청난 차이가 발생한다고 합니다.

인공위성으로 찍은 영국사진의 둘레를 측정하고 사진의 축적을 이용하여 계산한 값과, 가상의 개미가 해안선을 따라 걸으면서 측정한 값의 차이는 허용오차로 설명할 수 없을 만큼 너무 크게 발생한다고 합니다.

이러한 꼬불꼬불한 해안선처럼 크기는 다르지만 같은 모양이 반복되는(자기유사성을 가지는) 기하학적 구조를 가지는 모양을 프랙탈이라고 합니다.

1975년 만델브로트 박사는 프랙탈한 대상 모양, 우연,차원 이라는 책을 출판하고 자연을 모델링하는 새로운 도구로서 프랙탈을 소개하게 되었다고 합니다.

 

그렇다면 자연에 존재하는 프랙탈 모양은 어떠한 것들이 있을까요?

1) 번개

- 번개는 한번에 치는 것이 아니라 같은 길을 반복해서 계단을 이루듯이 방전하는데요. 공중에서의 습도,기압,온도 등 여러가지 조건이 얽혀서 그  경로가 결정되기 때문에 일적신이 아니고 구불구불 진행하며 가지치기를 하는데 이 모습이 불규칙하지만 전체와 가지가 비슷한 구조를 가지고 있는 프랙탈 모양이라고 합니다.

2) 강줄기

- 강줄기 역시 작은 강이 모여서 큰 강을 이루는데 강마다 그 모양은 다르지만 같은 유역의 강 줄기는 거의 같은 프랙탈 차원을 갖는다고 해요.

강줄기 모습

3) 나무

- 나무 역시 큰가지가 나뉘어 지면서 여러 작은 가지가 생기고, 그 작은 가지도 갈라지면서 또 작은 가지가 생기는 모습이 프랙탈 구조를 지닌다.

그 외에 고사리,산,폐 등과 같은 곳에서 확인해 볼 수가 있는데요.

인간의 폐가 프랙탈 구조가 아닌 양서류와 같이 밋밋한 구조를 지닌다면 어느 한군데에 결핵균이 침입해서 구멍을 낸다면 당장 호흡곤란을 일으켜서 질식사를 하게 될것입니다.

이처럼 인간을 비롯한 모든 생물의 신체구조는 프랙탈 구조가 가장 효율이 좋은 조직으로 구성이 된다고 해요.

 

그렇다면 이러한 프랙탈 구조를 이용한 시에르핀스키 삼각형 성질을 살펴 볼께요.

시에르핀스키 삼각형은 다음과 같은 구조로 이루어 집니다.

처음 0 단계에서는 삼각형 1개에서 정삼각형의 한변의 길이를 1이라고 할때 다음 표를 만들어 보면 다음과 같습니다.

  0단계 1단계 2단계 3단계
색칠한 정삼각형의 갯수 1 3 3^2 3^3
색칠하지 않은 정삼각형의 갯수 0 1 4 13
가장 작은 정삼각형의 한변의 길이 1 1/2 1/4 1/8

 

따라서 n단계의 색칠한 정삼각형의 갯수는 3^n 개입니다.

그렇다면 0단계 정삼각형의 넓이를 A라고 할때 n단계의 지워진 삼각형의 넓이와 색칠한 삼각형의 넓이를 구하면 어떻게 될까요?

0단계 - 지워진 삼각형 0, 색칠한 삼각형 A

1단계 - 지워진 삼각형(삼각형을 4등분한 부분의 1 - 1/4) 즉 (1/4)xA, 색칠한 삼각형 (3/4)xA

2단계 - 지워진 삼각형(색칠한 삼각형 (3/4)xA 의 1/4) 즉 (3/16)xA , 색칠한 삼각형 (3/4)xA - (3/16)xA = (9/16)xA

3단계 - 지워진 삼각형(색칠한 삼각형 (9/16)xA 의 1/4) 즉 (1/4) x (3/4)^2 x A , 색칠한 삼각형 (9/16)xA - (9/64)xA = (27/64) x A = (3/4)^3 xA

...

 

즉 n 단계 - 지워진 삼각형은 (1/4) x (3/4)^(n-1) x A, 색칠한 삼각형은 (3/4)^n x A 의 규칙을 얻게 됩니다.

 

색칠하지 않은 정삼각형의 갯수는 그 전 단계의 색칠한 정삼각형갯수와 그 전 단계의 색칠하지 않은 정삼각형 갯수로 이루어지는 것을 확인 할 수 가 있는데요.

이러한 것을 함수화 하면 다음과 같이 표현 할 수 있겠네요.

색칠한 정삼각형의 갯수 g(n) = g(n-1) x 3,단 g(0)=1

색칠하지 않은 정삼각형의 갯수 f(n) = f(n-1) + g(n-1) , 단 f(1) = 0

 

이렇게 색칠하지 않은 점삼각형의 갯수를 세는 것을 c언어로 표현을 해 보면 다음과 같이 표현을 할 수 있습니다.

(재귀적인 표현)

int g(int n)

{

    if(n==0) return 1;

    return g(n-1) * 3;

}

int f(int n)

{

   if(n==0) return 0;

   return f(n-1) + g(n-1);

}

 

배열을 이용한 값 계산

g[0]=1;

f[0]=0;

for(int i=1;i<=n;i++)

{

    g[i]=g[i-1]*3;

    f[i]=f[i-1] + g[i-1];

}

프랙탈과 프로그래밍과의 관계...

어느정도 이해 하셨나요?

 

프랙탈은 자연계에서 실제로 만날 수 있는 신비한 규칙의 하나라고 합니다.

이처럼 자연계에 있는 규칙들을 찾아서 프로그래밍으로 처리 하는 일을 하는 사람들이 프로그래머 인 셈이죠.^^

 

그러다 보니 프로그래머는 관찰력도 뛰어나야 하고 분석력도 뛰어나야 합니다.

특히나 어떤 자연계의 산물을 어떤 반복과 규칙으로 규칙화 할 수 있는 능력이 뛰어나면 더욱 더 많은 일들을 할 수가 있을거예요.

 

프로그래밍을 공부하고 알고리즘을 공부하는 우리 학생들이 이러한 규칙을 찾는 연습을 꾸준히 하신다면 분명히 좋은 결과가 있을거예요.

 

오늘 하루도 최선을 다하고 있는 학생들을 응원합니다.^^

 

인천 서구 원당 컴퓨터 학원

 

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기