기하문제에서 epsilon 잡는 방법..

  • CYPark
    CYPark

    기하문제에서 epsilon을 어떤식으로 잡아야되나요..?
    문제마다 다를거 같은데.. epsilon을 잡는 방법 같은게 있을까요..??

    [이 글은 과거 홈페이지에서 이전된 글입니다. 원문보기]


    14년 전
4개의 댓글이 있습니다.
  • JongMan
    JongMan

    입실론과 계산에서의 실수 사용은 굉장히 복잡한 주제죠.
    간단하게 대답하자면: 주어진 값들의 '빽빽한 정도' 따라 달라지겠죠. 계산한 실수 두 개를 가지고 A <= B 인지 아닌지를 판단해야 한다고 합시다. 우리가 정상적으로 A > B 으로 판단해야 할 때 A 와 B 의 차이가 얼마나 날까요? 입력이 정수라거나, 소수 밑 세 자리까지만 주어진다거나, 특정 정수를 분모로 갖는 실수 등 비교적 '듬성듬성' 분포되어 있는 경우에는 min(A-B) >= 0.001 이라던가 하는 제한을 찾아낼 수 있습니다. 그러면 이 수의 1천분의 1 정도 되는 수를 택하면 안전하겠죠. 
    만약 입력에 완전한 '임의의' 실수 가 들어온다면.... 사실 방법이 없죠. -_-; 컴퓨터에서의 실수 타입이라는 것은 어디까지나 어느 정도의 손실을 기본으로 예상하고 작성된 표준이기 때문에, 모든 경우에 정확하게 답을 찾아낼 수 있는 방법 같은 건 없습니다. ㅋㅋ -_-;


    14년 전 link
  • Toivoa
    Toivoa

    제 경우에도 설명하기 힘든 경험적인 감에 의존합니다. 'ㅅ' 처음에 입실론 처리 때문에 받았던 WA들을 생각하면.... ㅠㅠ


    14년 전 link
  • Taeyoon_Lee
    Taeyoon_Lee

    그래서 기하 문제나 확률 문제는 만들기가 어려운 것 같아요..'';
    만들고도 왠지 찝찝하고..'';


    14년 전 link
  • ltdtl
    ltdtl

    위에 달린 댓글들을 가지고 결론을 내리면: 답이 업ㅂ다
    문제를 많이 풀다보면 대충 '이정도' eps를 잡으면 되겠다 느낌이 오는데,
    그나마 수를 고를 여유가 있다면 아래 몇 가지 정도 생각해보고 고르면 되겠습니다
    1) 입력에 들어오는 값들을 가지고 연산을 하는데, 내 알고리즘이 어느정도 미만을 '버려도' 답에서 요구하는 범위에 벗어나지 않을까 (연산을 무진장 많이 하는데 eps를 10-4 정도로 잡아놓고 출력에서 요구하는 답이 오차 10-3 이내라면 WA 받을 수도 있겠죠
    2) 연산 과정에서 실수연산 대신 정수 연산으로 바꿀 수 있는 부분이 있을까 (있으면 바꾸고 eps를 없애거나 하는 것도 방법..)
    저도 GCJ Americas Final 에서 eps 땜에 월파를 못나갔죠... (근데 상위권 2명이 기권해서 어쩌다가 나가게 되긴 했지만..-_-)
    보통 eps 값으로 많이 잡는 수는: 10-6 ~ 10-12 범위 입니다... (개인적으로) 왠만하면 10-9 정도가 무난하다고 생각됩니다
    암튼 결론은.. 답이 없어요 ㅜ..ㅜ


    14년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.