SIRINI`s Blog

life, saying, developing, . . . and so on

[심심풀이 코딩문제] cos x 일병 구하기?!

언제나 그렇듯 별 다른 의미도 뜻도 없는,
그야말로 뻘쭘하고도 즐거운 심심풀이 코딩문제입니다.
오늘은 너무 쉬워서 저의 아메바 두뇌를 혹평하실 수도 있고,
아니면 제 설명 부족으로 전혀 무슨 말인지 이해가 되지
않으실 수도 있을 것 같습니다.

어쨌든 오늘의 심심풀이 코딩문제는 이겁니다. (두둥~)

Q. 0~360도 (혹은 radian 형태로 0~2파이 까지) 의 범위 중 하나를
외부에서 입력으로 받아서 그 각도에 해당하는 cos 값을 출력하기.
단, 언어에서 기본으로 제공하는 math 라이브러리나 기본 함수를
사용하지 말고, cos() 함수를 직접 구현해보자!
(예: 입력을 90 으로 받았을 경우 cos 90 = 0 출력하기)


...아니, 왜 이미 있는 함수를 다시 구현하라는 거야? 라고 하실지도
모르겠습니다. 왜냐면... 음... 이 편이 더 재밌지 않나요? (돌 날라온다==3=3)

직접 함수를 구현하실 때 참고하실 수 있는 힌트를 드리겠습니다.
이미 고등학교 때 혹은 대학교에서 배우셨을 테일러 급수를 이용하여
cos x 함수를 구현할 수 있습니다. 수식 관계는 아래와 같습니다.

upload image

(출처: 위키백과)

테일러 급수 말고도 다른 방식으로 구현하실 수 있으신 분은 다른 방법으로
구현해 보셔도 됩니다. 가령 중간 값들을 지정하고 값 비율로 대략적인 값을
산출하는 거라던지, 혹은 다른 급수를 통해서 만드셔도 좋습니다.
(만약 급수 형태로 구현하실 거라면, 팩토리얼 처리를 위한 함수도 추가해야 겠지요~)

급수를 통한 cos 구현시 n 의 범위를 실질적으로 제한해야 겠지요.
우리는 가볍게 심심풀이삼아 하는 거니까 n < 1000000 이내의 범위로
한정하도록 합시다. ^^;

언어 선택은 아무 언어나 상관없습니다. 본인이 좋아하는 언어로 구현해서
서로 비교해 보는 것도 재밌겠네요. ^^;; 

심심하실 때 함께 즐겨보아요~.
설마 그러실 분은 없겠지만, cos 뿐만 아니라 sin, tan 등의 삼각함수를
라이브러리 없이 직접 함수로 구현해내신 분께는 역시 용자님의 칭호를
드리도록 하겠습니다.

즐거운 코딩 되세요~ Cool (전 이만 잠자러...)

c언어에서는 n>86에서 overflow 가 납니다.  (in factorial, n = double)
더 큰 메모리를 쓰려면 어떻게 해야하나요?
(sungchan17@naver.com) 으로 답변주시면 더욱 고맙겠습니다.
기본 자료형을 쓰시면 한계가 있습니다. 큰 수치를 연산할 수 있도록 자료형을 하나 만드셔야 합니다. 무한 자리수 연산과 관련된 저의 포스트 혹은 C 자료구조/알고리즘 관련 책을 참조해 보세요~.

덧. 그나저나 저도 생각이 짧았네요. n < 100 이하 범위 정도로만 해도 될텐데... =ㅁ=;;
Dapoxetine No Prescripton Levitra Dosage En France <a href=http://cialislis.com>generic 5mg cialis best price</a> Amoxicillin Dental Ciprofloxacin Tab 500mg Side Effects
Leave a comment here!
이 곳에 이름(닉네임)을 입력하세요
이 곳에 글 수정/삭제를 위한 비밀번호를 입력하세요
이 곳에 이메일 주소를 입력하세요 (선택)
이 곳에 웹사이트 주소를 입력하세요 (선택)