'수학'에 해당되는 글 2건

  1. 2013.06.25 수열- 등차수열, 등비수열
  2. 2013.06.24 수학 카테고리 생성

수열- 등차수열, 등비수열

2013. 6. 25. 07:00 from 수학

수열이란?


먼저 등차 수열과 등비 수열을 설명하기 앞서 수열에 대해서 알아봅시다. 위키백과에 수열의 정의는 다음과 같습니다. 


수열(數列)은 어떤 규칙에 따라 차례로 나열한 수를 말한다. 여기에 속하는 각각의 수를 수열의 ‘항’(혹은 ‘원소’, ‘열’이라고도 함)이라고 한다. 수열의 각 항은 순서에 따라 구분되므로 (1, 2, 3)과 (1, 3, 2)는 서로 다른 수열이며, 집합의 경우와 달리 (1, 1, 2)처럼 하나의 수가 두 항에 동시에 등장할 수도 있다. 이때 항의 수를 수열의 ‘길이’라고 한다. 수열의 길이는 유한할 수도 있고, 무한할 수도 있다. 또한, 수열은 (2, 4, 6, 8, …)과 같이 일정한 규칙에 따라 놓일 수도 있고, (3, 7, 6, 5, …)와 같이 아주 규칙도 없이 놓일 수도 있다.

- 위키피디아(http://ko.wikipedia.org/wiki/수열)


넓은 의미에서는 꼭 수가 아니라도, 특정한 순서로 놓인 임의의 대상의 열을 ‘수열’이라고 한다. 예를 들어 문자의 열은 ‘문자열’, 행렬의 열은 ‘행렬렬’이라 하는데, 이런 것들도 일반적인 의미에서 ‘수열’이라고 불린다.


수가 나열되어 있고, 수의 순서에 따라 규칙이 있거나 없을 수 있는 것이다. 위 수열의 규칙을 따라 수열을 나누는데 그것이 등차/등비/계차 수열입니다. 


추가적으로 위에서 말한 행렬도 하나의 수열입니다. 그렇다는 것은 일정한 규칙을 가지고 있다는 것입니다. 그 규칙을 프로그래밍에서 이용한다면, 2차 배열을 1차 배열을 이용해서 구현할 수도 있다. 이에 대한 예제는 다음 숙제로 나두고, 등차수열과 등비수열에 대해 설명하겠습니다.



등차수열


등차수열은 연속하는 두 수의 차이가 일정한 수열을 말합니다. 즉, 각 항에 일정한 수를 더해서 얻어지는 수열을 뜻합니다. 일정한 수를 더하는 값을 공차라고 합니다.


등차수열의 일반항

수열의 첫항을 a_1, 공차를 d라고 하면 등차수열의 n번째 항은 다음과 같이 나타낼 수 있습니다. 

a_n = a_1 + (n-1)d


등차수열의 예

첫항이 1이고 공차가 2인 등차수열은 다음과 같습니다. 

1, 3, 5, 7, 9, .....


첫항이 50이고 공차가 -10인 등차수열은 다음과 같습니다.

50, 40, 30, 20, 10, 0, -10, .....



등비수열


등비수열은 각 항의 그 앞 항과 일정한 비를 가지는 수열을 말합니다. 즉 각 항에 일정한 수를 곱해서 얻어지는 수열을 뜻합니다. 일정한 수를 곱하는 값을 공비라고 합니다. 어떤 수열이 등비수열인지 확인하기 위해서는 각각의 연속된 항의 비가 일정한지만 확인하면 됩니다. 


등비수열의 일반항

수열의 첫 항을 a, 공비가 r인 등비수열의 n번째 항은 다음과 같습니다.

a_n = ar^(n-1)


등비수열의 예

첫항이 1이고 공비가 2인 등비수열은 다음과 같습니다. 

1, 2, 4, 5, 16, 32 ...


첫항이 3이고 공비가 -1인 등비 수열은 다음과 같습니다.

3, -3, 3, -3, 3, -3, ...


등차수열과 등비수열의 관계


등비수열은(공비가 -1, 1, 0이 아닌 경우) 등차수열과 같이 선형 변화를 보이는 것과 달리, 지수적 변화를 보입니다. 즉, 그래프를 보면, 기울기가 매우 커진다는 것이죠. 이 두 수열은 관계가 전혀 없어 보이지만, 등차수열에 거듭제곱을 취하면 등비수열이 되고, 반대로 등비수열의 각 항에 로그를 취하면 등차 수열이 되는 관계를 가진다고 합니다. 


등차수열^2 = 등비수열

log(등비수열) = 등차수열 



참고사이트


http://ko.wikipedia.org/wiki/%EB%93%B1%EB%B9%84%EC%88%98%EC%97%B4

http://ko.wikipedia.org/wiki/%EC%88%98%EC%97%B4

http://ko.wikipedia.org/wiki/%EB%93%B1%EC%B0%A8%EC%88%98%EC%97%B4

http://k.daum.net/qna/view.html?qid=546iH

'수학' 카테고리의 다른 글

수학 카테고리 생성  (0) 2013.06.24
Posted by 빌리 :

수학 카테고리 생성

2013. 6. 24. 12:52 from 수학

프로그래밍 공부 정리를 위해 수학 카테고리를 생성했습니다.


보통 수학을 하는 사람은 프로그래밍을 잘한다는 말이 있죠? 학생 시절, 그리고 직장 생활을 하며 수학이라는 학문과 프로그래밍과의 접점을 만들 기회가 없었던 시기를 뒤로 하고, 드디어 왜 수학이 프로그래밍에 필요한지를 이제야 알게되었습니다. 항상 공부를 하면서 '지금 하는 공부는 어디다 쓰이는거지?' 라며 의문을 던지며 배움의 길을 걸었습니다. 이런 물음을 한 이후 그 해답을 찾은 학문은 지난 10년 동안 하나씩 늘려왔지면, 손에 꼽히는게 몇 개 되지 않네요. 


수학이 돈 계산 뿐만 아니라 프로그래밍의 접점을 이해하는데 수 많은 시간이 걸렸네요. 지식으로는 그래픽 관련 계산을 할 때 필요한 것이라고만 어렴풋이 알고 있었지, 진정으로 이해하진 못했습니다. 아마 대부분의 프로그래머가 대학 학부 생활에 배운 수치 해석, 공업 수학은 왜 배웠는지도 모르고 지나가지 않았을까 합니다.


예전에 저보다 4~5년은 빨리 프로그래머의 길로 들어선 친구가 학생 때 하지 않았던 수학 공부를 직장에 들어가서 하나? 하는 푸념도 하긴 했습니다. 저도 직장에 들어와서 수학을 쓸 일이 없더군요. 비즈니스 로직을 짤 때도 수학이 필요가 없죠. 수학에 나오는 순서도만 있으면 모든 프로그램이 작성 가능하니까요. 지금 돌아보니, 그 친구가 프로그래밍에서 수학의 필요성을 일찍 깨우쳤다는게 조금 부럽긴 합니다. 


각설하고, 수학이 왜 필요한지 느끼게 된 경험을 기록하고 카테고리 생성 글을 마무리 할까 합니다. 


실제로 계기가 된 것은 ACM[각주:1] 문제를 풀면서 알고리즘을 작성하다가 직면한 문제때문이였습니다.

그거 아시나요? 알고리즘이라는게 이미 작성된 최적의 방법 뿐만 아니라, 답을 찾아가는 과정을 배우는 학문이라는 것을요. 저는 단순히 최적의 알고리즘을 이해하고, 그것을 조금 변경해서 사용하는 것이 알고리즘인 줄 알았습니다. 답을 찾아가는 과정을 도출해 내는 것이 더 비중이 큰 학문이라는 것도 최근에야 알게 되었습니다. 뭐 뒤늦게나마 깨닫게 됐으니 다행이죠. 


다시 이야기로 돌아가서 문제를 풀다가 규칙을 발견하게 됩니다. 하지만 여기서 그 규칙을 가지고 수식을 만들어야 하는데 수식을 어떻게 만들어야 할지 모르겠더군요. 간단한 x가 1, 2, 3, ... 식으로 증가했을때 그 결과가 1, 3, 5, 7, .. 이렇게 2씩 증가하는 수식을 구하는 간단한 것인데도, 어떻게 값을 뽑아야 할지 모르겠더군요. 그래서 등비수열이라는 단어가 떠올라 검색을 해보니, 실제로 저런 것을 등차수열 이라고 부르더군요. 나름 고등학교때까지 수학은 최상위권에 속해있었는데.. 시간엔 장사가 없다는 말처럼 수학 바보가 되어버렸습니다.


최근에 이미지 파일이나 텍스트 파일을 직접 다루는 프로그래밍을 조금씩 공부하다 보니, 실제 저런 경우를 은근히 접하게 되더군요. 이렇게 규칙을 발견하게 되고, 규칙을 일반적인 규칙으로 만들때 수학이 필요합니다. 아니 이것이 수학이죠.

간단한 것도 잊어버린 프로그래머가 수학의 필요성을 깨닫고 다시 학습하고 정리하기 위해 이렇게 카테고리를 생성합니다. 


뭐 이 글을 보시는 개발자의 절반 이상은 수학이 필요없을 수도 있습니다. 수학 없이도 먹고 살수 있습니다. 하지만 프로그래밍을 하면서 일정한 규칙을 발견하고, 그 패턴을 일반화해, 다른 곳에도 똑같은 규칙을 적용하는 프로그램을 개발을 하신다면 수학은 반드시 필요하겠죠. 간단히 예를 들면, 그래픽의 Blur 필터 효과(이미지 흐릿하게 만들기)와 같은 필터를 만드는데도 수학이 필요합니다. 이미지 처리엔 대부분 수학이 필요하시다고 보면 됩니다.


그럼 진지하게 수학을 정리해보겠습니다.(진지의 아이콘은 궁서체)



  1. ACM International Collegiate Programming Contest (abbreviated as ACM-ICPC or just ICPC) is an annual multi-tiered competitive programming competition among the universities of the world. The contest is sponsored by IBM. Headquartered at Baylor University, with autonomous regions on six continents, the ICPC is directed by Baylor Professor William B. Poucher, Executive Director, and operates under the auspices of the Association for Computing Machinery (ACM). [본문으로]

'수학' 카테고리의 다른 글

수열- 등차수열, 등비수열  (0) 2013.06.25
Posted by 빌리 :