게시판 인덱스

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

2-1 질문입니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2013)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
박선비



가입: 2013년 9월 4일
올린 글: 11

올리기올려짐: 2013년9월20일 18:12    주제: 2-1 질문입니다. 인용과 함께 답변

1) SIGMA(a,b,f)에서 a<b인 경우 0.0을 반환하는 것이 맞나요?
2) INTEGRAL(a,b,f)에서 a<b인 경우 0.0을 반환해야 하나요?
아니면 -INTEGRAL(b,a,f)로 계산해야 하나요?
3) 0으로 나누는 경우에는 float infinity가 나오도록 내버려 두면 되나요?
아니면 따로 devideByZero 와 같은 exception 처리할까요?
위로
사용자 정보 보기 비밀 메시지 보내기
최준원



가입: 2007년 3월 30일
올린 글: 149

올리기올려짐: 2013년9월20일 20:51    주제: 인용과 함께 답변

인용:
1) SIGMA(a,b,f)에서 a<b인 경우 0.0을 반환하는 것이 맞나요?

a>b 를 말씀하시는 것이겠죠? 네, 그러는 것으로 하겠습니다.
(변경 스펙 게시물에 추가)

인용:
2) INTEGRAL(a,b,f)에서 a<b인 경우 0.0을 반환해야 하나요?
아니면 -INTEGRAL(b,a,f)로 계산해야 하나요?

마찬가지로 a>b 를 말씀하시는 것이겠죠? 후자가 맞습니다. INTEGRAL의 수학적 정의를 사용하기로 했기 때문에 말씀하신 대로 -INTEGRAL(b,a,f)로 계산하면 되겠습니다.

인용:
3) 0으로 나누는 경우에는 float infinity가 나오도록 내버려 두면 되나요?
아니면 따로 devideByZero 와 같은 exception 처리할까요?

네, OCaml의 floating-point 연산을 그대로 활용하시면 됩니다.
정수의 경우에도 0으로 나누는 경우 OCaml이 Division_by_zero 예외를 내도록 그대로 두시면 됩니다.
(변경 스펙 게시물에 추가)
위로
사용자 정보 보기 비밀 메시지 보내기
박선비



가입: 2013년 9월 4일
올린 글: 11

올리기올려짐: 2013년9월20일 21:31    주제: 인용과 함께 답변

아 죄송합니다
1)과 2) 모두 a>b인 경우입니다ㅎㅎㅎ

3)에서 "정수의 경우에도 0으로 나누는 경우 OCaml이 Division_by_zero 예외를 내도록 그대로 두시면 됩니다" 라고 하셨는데...

저는 int가 들어오면 float으로 바로 바꾸게 해서
DIV(INT 1, INT 0)을 하면
DIV(REAL 1, REAL 0)과 같은 infinity가 나오거든요...

int를 받으면 바로 float으로 변형해서 계산하면 안 되나요?
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2013년9월20일 21:44    주제: 인용과 함께 답변

인용:
DIV(INT 1, INT 0)을 하면
DIV(REAL 1, REAL 0)과 같은 infinity가 나오거든요...


어떻게 하셔도 됩니다.
infinity와 Division_by_zero 둘다 나올 수 있는 예제는 테스트하지 않거나 둘다 동일한것으로 간주하겠습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
최준원



가입: 2007년 3월 30일
올린 글: 149

올리기올려짐: 2013년9월20일 22:10    주제: 인용과 함께 답변

인용:
int를 받으면 바로 float으로 변형해서 계산하면 안 되나요?

한 가지 오해의 여지가 있을 것 같아 추가적으로 설명드립니다.
결론적으로 int를 받으면 바로 float으로 변형해서 계산하면 안됩니다.

위의 강동옥 조교의 답변은,
계산시 나올 수 있는 floating-point infinity 혹은 정수에서의 Division_by_zero를 차별해서 다루지 않겠다는 뜻이고요.

그 외 다른 일반적인 계산에 대해서는 int를 float으로 변형할 경우 계산 결과가 확연히 다릅니다.
예를 들어, OCaml 에서 3 / 2 = 1 이지만 3.0 /. 2.0 = 1.5 가 되죠.

따라서 int, float 계산은 계산 도중에 지속적으로 구별해 주셔야 합니다 Razz
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2013) 시간대: GMT + 9 시간(한국)
페이지 11

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


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