게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

챌린지1번 소수점 관련 질문입니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
유진선



가입: 2011년 10월 5일
올린 글: 25

올리기올려짐: 2014년10월30일 15:39    주제: 챌린지1번 소수점 관련 질문입니다. 인용과 함께 답변

self-grader의 결과로 O가 나오기만 하면 되는건가요 ??

소수점 아래 7~8번째 자리에서 값이 다르게 나오기도 하는데 상관없는건가요 ?
위로
사용자 정보 보기 비밀 메시지 보내기
김윤승



가입: 2014년 9월 1일
올린 글: 452
위치: 302동 312-2호

올리기올려짐: 2014년10월30일 18:16    주제: 인용과 함께 답변

소수점 문제 때문에 자동채점 한 후에 수동 채점도 고려하고 있는 중입니다..

그런데, 소수점 아래 값이 다르게 나오는데 self grader에서는 O가 나오나요?
위로
사용자 정보 보기 비밀 메시지 보내기
유진선



가입: 2011년 10월 5일
올린 글: 25

올리기올려짐: 2014년10월30일 20:06    주제: 인용과 함께 답변


((A . 12.162162161758499) (B . 12.162162161758502) (C . 20.2702702695975) (D . 55.4054054035665))

((A . 12.162162162162147) (B . 12.162162162162147) (C . 20.270270270270245) (D . 55.40540540540534))

이렇게 두개가 다른데도 O 라고 출력됩니다.

제가 4개일 경우 초기값을 각각 1/4씩으로 해서 답이 조금 다르게 나오는건가요 ??

Racket에서
(= (/ 1 10) 0.1) 하면 #f가 나오는걸로 봐서 Racket 소수점 계산이 조금 다른것 같습니다.

저정도의 오차도 해결해야 하나요 ?
위로
사용자 정보 보기 비밀 메시지 보내기
김윤승



가입: 2014년 9월 1일
올린 글: 452
위치: 302동 312-2호

올리기올려짐: 2014년10월30일 20:45    주제: 인용과 함께 답변

결과가 거의 비슷하면 됩니다.

racket의 소수점 아래 구현이 어떻게 되어있는지는 모르지만, 분수의 경우에는 정확히 같을 때에만 같다고 하고, 소수일 경우에는 특정 값보다 차이가 적을 때에는 같은 수로 보는 것으로 추측됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기
유진선



가입: 2011년 10월 5일
올린 글: 25

올리기올려짐: 2014년10월30일 22:06    주제: 인용과 함께 답변

네 갑사합니다. 답변 확인했습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
오평석



가입: 2014년 10월 17일
올린 글: 8

올리기올려짐: 2014년10월30일 22:23    주제: 인용과 함께 답변

equal? 의 경우 eps = 10^-16 정도로 잡는 것 같더군요.

코드:
> (equal? 0.5 0.4999999999999999)
#f
> (equal? 0.5 0.49999999999999999)
#t


이와 별도로, self-grader에서는 item-match? 함수로 값을 비교하고 있는데,

코드:
(define (item-match? l r)
  (and (equal? (car l) (car r))
       (or
        (and (< (cdr l) 0.001) (< (cdr r) 0.001))
        (let ([ratio (/ (cdr l) (cdr r))])
         (and (< 0.99 ratio) (< ratio 1.01))))))


를 보면 ratio로 (0.99 ~ 1.01) 정답 유무를 판단하고 있는 것 같습니다 Smile
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay