강의실/정보영재

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

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

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

 

예를 들어 칸토어 먼지는 사각형 하나를 기준으로 사각형 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];

}

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

어느정도 이해 하셨나요?

 

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

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

 

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

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

 

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

 

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

 

인천 서구 원당 컴퓨터 학원

 

9 0
  • 유하v 2019.12.04 13:55 신고    

    무슨 뜻인지 잘 모르겠지만 조금이나마 알아갑니다ㅋ

  • 휴식같은 친구 2019.12.04 22:22 신고    

    수학적 지식이 어느정도 받춰줘야 프로그래밍도 할수 있겠습니다.
    프랙탈에 대해서 막연히나마 배우고 갑니다.

  • 버블프라이스 2019.12.05 05:16 신고    

    프렉탈 용어에 대해 몰랐었는데요-
    덕분에 알고 갑니다^^
    따뜻한 목요일 되세요-

  • 핑구야날자 2019.12.05 06:54    

    오늘은 내용이 조금 어렵네요 덕분에 프렉탈에 대해서 조금 알고 가네요

  • 공수래공수거 2019.12.05 07:19 신고    

    프렉탈 이론에 대해 조금 알고 갑니다.^^
    차가워진 날씨 따뜻하게 보내시기 바랍니다.

  • 라미드니오니 2019.12.05 12:34 신고    

    말씀처럼 이렇게 자연계에서 만날수있는 것을 수치화한 이론이 많이 있죠. 프렉탈 이론 잘 보고갑니다.ㅎ

  • 드래곤포토 2019.12.05 13:13 신고    

    프랙탈에 대해 공부하고 갑니다. ^^

  • 청결원 2019.12.05 16:56 신고    

    포스팅 잘 보고 갑니다~
    날씨가 무척이나 추워졌네요...
    건강 유의하시고 좋은 하루 마무리 하세요~

  • ele_sso 2019.12.07 04:24 신고    

    자연계에서의 신비한 규칙이라니
    뭔가 경의롭네요 ㅎㅎ
    공감하고 갑니다:)