'Ruby'에 해당되는 글 2

  1. 2009/12/10 My Recent Tweets 20091207 (2)
  2. 2009/06/09 n번째 피보나치 수 구하는 프로그램

My Recent Tweets 20091207


프로그래밍
programming


방법론methodology

그래픽스graphics

병렬성parallelism
  • RT SoftTalkBlog: Parallelising an imaging application - whitepaper - http://bit.ly/8dXwx1 #multicore #intel #parallelism #
    • 순차 수행으로 작성된 응용프로그램을 어떻게 병렬화할 수 있는지 보여주는 문서
  • RT bjoernknafla: /via JamesReinders: 48core research chip SinglechipCloudComputing:SCC http://bit.ly/7iufrL IntelLabs #parallelism #
    • 인텔에서 발표한 연구용 48코어 칩
  • RT dvyukov: Relacy Race Detector kicks $hit out of HotSpot http://bit.ly/4psH3a #parallelism #
    • Relacy Race Detector를 사용해 어떻게 레이스를 잡아내는지 보여주는 실례
  • The Microsoft Research Accelerator system provides simplified programming of GPUs via a high-level data... http://su.pr/1gAPQH #parallelism #
    • 마이크로소프트 연구소에서 내어놓은 GPU 기반 닷넷 플랫폼 데이터병렬 라이브러리
  • RT SoftTalkBlog: When multicore processors cause programs to run more slowly http://bit.ly/599k3b #parallel #programming #parallelism #
    • 포브스지에 실린 멀티코어 프로세서를 위한 프로그래밍에 대한 글

게임개발gamedev

기타etc



* 이 포스트는 blogkorea [블코채널 : 웹, 컴퓨터, it에 관련된 유용한 정보 및 소식] 에 링크 되어있습니다.


크리에이티브 커먼즈 라이선스
Creative Commons License

'Tweets' 카테고리의 다른 글

My Recent Tweets 20100118  (0) 2010/01/19
My Recent Tweets 20100104  (0) 2010/01/05
My Recent Tweets 20091207  (2) 2009/12/10
My Recent Tweets 20091120  (0) 2009/11/24
My Recent Tweets 20091104  (0) 2009/11/06
My Recent Tweets 20091021  (0) 2009/10/22
Trackback 0 Comment 2

n번째 피보나치 수 구하는 프로그램

romanesco
romanesco by docman 저작자 표시비영리

다음과 같은 피보나치 수열을 아실겁니다.


0, 1에서 출발하여 다음과 같은 재귀 관계를 만족하는 수들입니다.


실제 자연 현상에서도 다양하게 확인되며, 황금비와의 관련 등 여러 흥미로운 특징을 가지는 수가 되겠습니다.

n번째 피보나치 수를 구하기 위해 가장 단순하게는 다음과 같은 함수를 만들 수 있겠죠.


하지만 따져 보시면 알겠지만 중복 계산이 많으며, 실제 지수 시간이 걸립니다.

이를 선형 시간 안에 계산하려면, 여러가지 방법이 있습니다만, 가장 금방 생각해낼 수 있는 것이 중복 계산 방지를 위해 메모이제이션을 사용하는 겁니다. 계산 결과를 캐슁해 놓았다가 재활용하는 것이지요.

하지만 다음과 같은 약간의 수학적 지식을 활용하면 로그 시간 안에 계산하는 것이 가능합니다.


F(n)이 n번째 피보나치 수라 할 때, 위와 같은 행렬식이 성립합니다. 이렇게 거듭 제곱 형태로 변경하고 나면 제곱으로 지수값 구하기를 이용하여 효율적으로 계산하는 것이 가능해집니다. (루비 코드입니다; 친절한 설명은 여길 참조)


이것이 가장 빠른 피보나치 알고리즘은 아니지만 순진한 맨위의 초기 구현보다는 큰 n에 대해서 훨씬 빠르겠죠.

Fibonachess
Fibonachess by fdecomite 저작자 표시

매우 간단한 수학 문제지만 실제 프로그래밍으로의 구현에서는 생각할 것이 많은... 그래서 인터뷰 질문으로 매우 유용한 소재라고 생각합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0

top