Microsoft MVP성태의 닷넷 이야기
일단... "Project Euler @kr" 88번까지 완료! ^^ [링크 복사], [링크+제목 복사]
조회: 18401
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 3개 있습니다.)

일단... "Project Euler @kr" 88번까지 완료! ^^

우와~~~ ^^ "Project Euler @kr" 웹 사이트에서 오늘 날짜 기준으로 출제된 문제까지 모두 풀었습니다.

인증샷~~~ 나갑니다. ^^ 오~~~ 멋지죠? ^^

euler_problem_1.png

오일러 수학자의 명성과 함께 사이트 소개 자체가 "수학적인 문제"들이라고 해서 긴장했는데, 일단은 65번 정도까지는 별다르게 수학적인 재능이 없어도 "프로그램빨(!)"로 풀 수 있으니... '수학'이란 단어에 걸려 주춤하고 계신 분이 있다면 부담 없이 도전해 보시라고 말씀드리고 싶습니다. ^^




아래는, 프로그래머 입장에서 수학적인 지식이 요구되는 문제들만을 설명해 보았습니다.


66번 - 펠 방정식

66번에서 처음으로 수학적인 지식을 요구하는데요. '디오판토스 방정식' 문제인데 Brute-force 방식으로 했다가는 한 세월 갑니다. 가령 3번째로 큰 x 값이 "3879474045914926879468217167061449"으로 어마어마하기 때문에 이건 아무것도 안하고 for 문만 돌려도 계산이 언제 끝날지 모릅니다. 어쩔 수 없이 '펠의 방정식'에 대해서 공부해야 하는데요. ^^ 다음의 글을 읽어보시면 어떻게 풀어야 할지 해법이 나옵니다.

펠 방정식(Pell's equation)
; http://pythagoras0.springnote.com/pages/4439359

결국, sqrt 값을 알기 위하여 펠 방정식이 근사값을 구하는데 씌여질 수 있고, 그 방정식에 해를 구하기 위해 연분수를 사용할 수 있다는 것이지만... 제 지식으로는 어떻게 '펠 방정식'의 해가 '연분수'와 연관지어지는가에 대해서는 이해가 안되는군요. ^^; 위의 웹 사이트 제목이 '수학이 알고 싶은 중고대딩을 위한 수학 노트'인데... Orz... 왜 난 이해가 안 된단 말인가???


69번, 70번, 72번 - 오일러의 φ(Phi)함수

이 방법이 아닌, 단순하게 공약수 찾는 방법을 사용했다가는 한 세월입니다. (참고로, 오일러 프로젝트의 모든 문제는 1분 안에 답이 나오도록 되어 있다고 합니다.) 오일러의 φ(Phi) 함수에 대해서는 다음의 글을 읽어보시면 도움이 되실 것입니다.

Euler's totient function
; http://en.wikipedia.org/wiki/Totient#Euler.27s_product_formula

혹시나, 여러분들 중에서 70번을 풀었는데 "9708131"이라는 오답이 나왔다면, 아래의 글을 보시면 어디가 잘못 되었는지 힌트를 얻으실 수 있습니다.

Euler's totient function - C#
; https://www.sysnet.pe.kr/2/0/1256


75번 - 피타고라스 수

피타고라스 방정식과 관련해서 9번과 39번 문제가 있었지만, 이번에는 정확하게 피타고라스 수를 생성해내는 방정식을 모르면 (적정한) 시간 내에 문제를 풀 수 없습니다. 이를 위해서는 다음의 글을 공부하시면 됩니다. ^^

피타고라스 수
; http://en.wikipedia.org/wiki/Pythagorean_triple


76번, 78번 - 점화식

76번도 수학적 지식이 요구되지만, 프로그램 실력으로 풀면 다음과 같이 풀립니다.

동전을 여러 더미로 나누는 경우의 수 세기
; https://www.sysnet.pe.kr/2/0/1271

76번과 78번을 풀 수 있으면 77번과 88번도 자연스럽게 해결됩니다.




기타, 제 경우 68번과 79번은 손으로 풀었고, 84번의 경우에는 Simulator로 풀어보라는 회사 동료의 요청에 따라 ^^ 실제로 그것을 만들어서 나온 결과로 답을 냈습니다. (Simulator가 어쨌든 확률적이라 그런지, 첫 번째에 정확하게 답이 나오지는 않았습니다. ^^)

마지막으로 아래는 제가 마인드 맵으로 그려본 80번까지의 문제들간의 관계를 나타낸 것입니다.

xmind-Project-Euler.png





참고로, "Project Euler 영문 사이트"는 371번까지 문제가 있던데... 그건 질려서 못하겠고, 우선 한국 사이트라도 충실히 따라가 봐야겠습니다. (그나저나... 초보적인 수학지식으로 몇 번까지 버틸 수 있을지는 모르겠군요. ^^)

암튼, 영문 "프로젝트 오일러"의 한글화 작업을 해 주고 있는 사이냅소프트(http://www.synap.co.kr/)에 박수를 보냅니다. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/24/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2012-05-02 11시39분
[miing] 재미있네요. 좋은 사이트 소개해 주셔서 감사합니다.
문제를 풀고나서의 만족감도 그렇고, 다른 사람들의 풀이 방법을 보는 것도 자극이 되네요.
80번까지 푸셨다니 대단하십니다!! ^^
[guest]
2012-05-04 10시13분
^^ 은근히 재미있지요. 말씀하신 것처럼, 다른 사람의 문제 풀이에 동기 부여도 되고. 바라건데 100번까지만이라도 버텼으면 좋겠습니다. ^^
정성태

1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...
NoWriterDateCnt.TitleFile(s)
227정성태1/29/200916822파수닷컴 DRM, fph.exe 제거하는 방법
226정성태1/15/2009134594GB USB 메모리로 Windows 7 베타를 UMPC 에 설치하는 방법 [1]
225정성태1/11/200925037nProtect 서비스 죽이기
224정성태1/11/200912591Windows 7 - DivX Codec 기본 내장
223정성태1/9/200912668작업 관리자 화면 - 96개의 코어 + 512GB 메모리
222정성태1/7/200912855비스타 - 유령 윈도우 제거 방법
221정성태1/4/200912933Q1 Ultra + Windows 7 [1]
220정성태1/3/200912600숫자가 주는 인식의 오류
219정성태1/1/2009135472008년 인기 순위 정리
218정성태1/1/200915006Internet Explorer용 RFC 검색 제공자
217정성태12/21/200824568개발자를 괴롭히는 nProtect 개발자 [1]
216정성태12/21/200812980Dynamic DNS 서버에 등록하는 과정을 없애는 방법
215정성태12/8/200812341TDD가 좋은 줄 알면서도 안하는 이유
214정성태12/2/200814272Outlook HTTP 접속 오류
213정성태11/30/200824030실행 시간을 제한하는 NT 서비스파일 다운로드1
211정성태10/30/200815516서울시의회 전자회의시스템 프로젝트 프로그램 개발자 폭행사건
210정성태10/19/200812480BGT 2008
209정성태10/4/200811996At least they’re consistent
208정성태10/2/200812667MSDN Magazine 기사 인쇄
207정성태7/25/200812480막연한 거부감 [1]
206정성태7/1/200811614변화... [1]
205정성태6/26/200812044NASA 과학자 “온난화, ‘티핑 포인트’ 임박했다” [1]
204정성태6/23/200811564Interface-Driven Development [1]
203정성태5/22/200812039돌부처의 심장을 뛰게 하라 [2]
202정성태4/16/200811761[디지털데일리] 기업 블로그, 쉽게 생각했다간 낭패 [2]
201정성태4/11/2008118002008년 4월 10일 - IE ActiveX 활성화 패치 포함
1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...