2013/02/06 3

OCaml 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기

음이 아닌 실수 A 의 평방근 sqrt(A) 를 구하는 Heron 의 방법: 반복함수 g(x) = (x + A/x) / 2 를 이용 실수 A 의 n제곱근 root(n, A) 를 구하는 Newton-Raphson 의 방법 반복함수 g(x) = ((n-1)*x + A/(x**(n - 1))) / n 를 이용 n = 2 인 경우에는 Newton-Raphson 의 방법이 Heron 의 방법과 동일하다. (참조. http://en.wikipedia.org/wiki/Newton's_method ) OCaml 언어에는 부동소수점수의 지수연산자 ** 가 있다. 하지만 차후 필요한 데가 있을 것 같아서 이와 유사한 n 제곱 함수와 n 제곱근 함수를 구현해 보았다. 지수가 정수인 거듭제곱을 계산하는 함수도 nPow, gP..

30000! 빨리 계산하기 with OCaml

* 꼬리 재귀호출과 패턴 매칭을 이용하여 구현한 팩토리얼과 피보나치 수열 계산 (* Filename: fact.ml Rapid factorial and fibonacci seq implementations by pattern matching and tail recursive call Execute: ocaml nums.cma fact.ml or Compile: ocamlc -o fact.exe nums.cma fact.ml Execute: fact Date: 2013. 2. 6. Author: pkim __AT__ scripts.pe.kr *) open Printf open Num let bignum x = num_of_int x ;; let to_string x = string_of_num x ;; l..