2013/01 62

(최대공약수 구하기) while... 반복문 예제 for OCaml

소스 파일명: testWhile.ml (* * Filename: testWhile.ml * * Purpose: Example using the while loop syntax * while .... * * Execute: ocaml testWhile.ml -200 300 * * Or * * Compile: ocamlc -o testWhile.exe testWhile.ml * Execute: testWhile -200 300 *) (* 사용법 표시 *) let printUsage() = Printf.printf "Using: testWhile.py [integer1] [integer2]\n"; Printf.printf "This finds the greatest common divisor of the gi..

구구단 출력 예제 for OCaml

OCaml 언어는 함수형 언어이면서도 명령형 언어의 특징을 대부분 가지고 잇다. 따라서 보통의 for 구문을 쓸 수도 있고, 재귀호출 함수릉 만들어 쓸 수도 있다. 아래의 소스에서 함수 printDan 은 보통의 for 구문을 쓴 것이고 함수 printAnotherDan 은 재귀호출 함수를 쓴 것이다. 소스 파일명: forTest.ml ------------------------------[소스 시작] (* Filename: forTest.ml Execute: ocaml forTest.ml Or Compile: ocamlc -o forTest forTest.ml Execute: ./forTest Or Compile: ocamlc -o forTest.exe forTest.ml Execute: forTest..

C# 에서 xmpir 사용하기

1. mpir 은 gmp 대신사용하는 (C/C++ 언어용) 긴 자리 수치 처리를 위한 기본 연산 라이브러리이다. 자리수가 매우 긴 정수, 유리수, 소수점수를 계산할 수 있다. 2. xmpir 은 (C 언어용 긴 자리 수치 라이브러리인) mpir 의 래퍼(wrapper) 이다. 3. xmpir 은 xmpir 다운로드 에서 구할 수 있다. (주의 사항. dl4windows.dll 파일이 존재하는 폴더의 경로명에 #문자가 있으면 컴파일은 되나 실행 시에 에러에 걸린다. 그 이유는 xmpir 이 dl4windows.dll 파일을 찾을 때 URL 주소를 적용해서 찾기 때문이다.) 실행에 필요한 *.dll 파일들은 (현재 경로 또는) 환경변수 PATH 에 결린 경로의 폴더에 존재해야 한다. dl4windows.dl..

프로그래밍/C# 2013.01.24

부정확한 부동소수점수 계산에 대하여

C 언어로 배정밀도 부동소수점수(floating point number of double type)로 높은 차수의 다항식 값을 계산을 하는 경우의 오차에 대하여 생각해보기로 하자. 우선 0.7 을 (배정밀도이든 단정밀도이든 상관없이) 부동소수점수로 정확하게 기억시키는 방법은 없다. 0.7 을 배정밀도 부동소수점수(double 타입의 수)로 처리하여 십진법수로 표현하면 유효숫자가 겨우 14개 내지 15개 정도 밖에 되지 않는다. 수 1 에 비하여 오차 1.0e-15 는 상대적으로 매우 작은 오차이다. 그러나 차수가 매우 높은 다항식 함수는 아주 짧은 구간(간격이 약 1.0e-15 인 구간) 안에서도 매우 많은 진동을 하여 함수값의 차이는 매우 커질 수가 있으니 주의해야 한다. 식 f(x) = 2*x*x -..

프로그래밍/C 2013.01.22

(C 언어로 구현해 보는) 십진법의 신비: 숫자 계산 피라미드 세 가지

C 언어로 작성된 다음 소스를 컴파일하여 실행하면 숫자 계산으로 쌓아 올린 피라미드 세 가지가 출력된다. (gcc 는 GNU C 컴파일러의 컴파일 명령이고, cl 은 Visual C++ 컴파일러의 컴파일 명령이다.) 세 함수 pyra1(int, int), pyra2(int, int), pyra3(int, int) 은 재귀호출을 사용하였고, 세 함수 pyramid1(), pyramid2(), pyramid3() 은 for 반복문을 사용하였다. // Filename: pyramidOfDigits2.c // // Compile: gcc -o pyramidOfDigits2 pyramidOfDigits2.c // Execute: ./pyramidOfDigits2 // // Or // // Compile: cl p..

프로그래밍/C 2013.01.22

Jython 실행 후 환경변수 JAVA_HOME 이 변경되는 현상

Jython 2.5.2 를 쓰는데, 명령창에서 jython 만 실행하고 나면, 환경변수 JAVA_HOME 이 바뀌어서 계속해서 자바 소스를 컴파일하거나 Groovy 를 사용하는데 문제를 일으킨다. 이럴 때는 경로 %JYTHON_HOME% 에 있는 jython.bat 파일의 5째 줄 set JAVA_HOME="C:\Program Files\Java\jre7" 을 set JAVA_HOME="내게 맞는 경로" REM 예: "C:\Java7" 로 고친다. -------------- 위의 현상은 최신 버전인 Jython 2.5.3 에서도 마찬가지인데, Jython 인스톨러로 성치하는 과정에서 JAVA_HOME 을 바로 설정해주면 저런 현상(JAVA_HOME 이 바뀌는 문제)은 일어나지 않는다. 그러나 Java S..

윈도우에 MPIR 라이브러리 설치하고 사용하기

MPIR 은 Multiple Precision Integers and Rationals 은 줄인 약자로서 C 언어나 C++ 언어로 매우 긴 자리의 수치 연산을 하는 프로그램을 작성할 때 사용되는 라이브러리이다. 참고. 위키피디아의 MPIR 설명 MPIR 은 GMP 처럼 무한 자리 수치 계산을 위한 (GMP 를 대체하는) 기본 라이브러리이다. MPIR 은 정수 계산, 유리수 계산, 부동소수점수 계산은 지원하지만, 복소수 계산은 지원하지 않는다. MPIR 은 GMP 보다 훨씬 다양한 OS 를 지원하며 CPU 에 최적화 되어있다. MPIR 은 LGPL 3 적작권으로 보호받는 소스 공개 소프트웨어이다. 상업용 패키지에 포함시킬 때는 MPIR 이 GMP 보다 라이센스 면에서 더 자유로운 것 같다. 다음은 MPIR..