Python, Ruby, Groovy 등의 스크립팅 언어를 동적 프로그래밍 언어라고 부르는 이유는
함수를 변수에 저장하여 필요할 때 변수를 부르둣이 함수를 부를 수 있기 때문이다
Ruby 언어와 Groovy 언어에서는 이를 클로저(closer)라고 부르고,
Python 언어에서는 이를 람다 함수(lambda function) 이라고 부른다.
Mathenatica 언어도 이러한 기능을 제공한다.
다음은 이 기능을 이용하여 피보나티 수열과 유클리드 호제법을 구현한 것이다.
(참고. 유클리드 호제법을 구현한 gcd 함수는 Mathematica Developer에 올라와 있는 예제가 음의 정수에 대하여는 잘 못 처리하기 때문에 수정한 것이다.)
* Mathematica 에서 Module 함수를 이용한 동적 프로그래밍(dynamic programming)
* 위의 내용를 PDF 파일로 저장한 것
* 위의 내용을 HTML 파일로 저장한 것
dynamicProgrammingExampleHtml.html
(이미지 파일은 HTMLFiles 라는 서브폴더에 저장되므로 현재 티스토리에서는 보이지 않는다.웹사이트에 올릴 때는 이 서브폴더 아래의 파일등도 그대로 옮겨주어야 한다. )
* TeX 파일로 저장하여 PDF 파일 생성하기
** Mathematica 에서 저장한 원본
dynamicProgrammingExampleTeX.tex
** 수정본 (\noindent\(\( ..... \)\) 을 모두 첮아서 \noindent\( ..... \) 로 수정함)
dynamicProgrammingExampleTeXNoindent.tex
** 수정본우로 부터 pdfLatex 을 실행하여 위의 만든 PDF 파일
dynamicProgrammingExampleTeXNoindent.pdf
'프로그래밍 > Mathematica' 카테고리의 다른 글
Mathematica 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제 (0) | 2013.01.08 |
---|