2009-10-23 5 views
1

저는 수학자는 아니지만 무한대로 나누는 것은 나쁜 수학이거나 또는 적어도 비실용적이라고 생각합니다.무한대로 나누기

저는 Firefox에서 완벽하게 작동하는 자바 스크립트를 디버깅하는 데 30 분을 소비하지만 IE에서 오류가 발생했습니다. 나는 마침내 그것이 특정 시나리오에서 IE가 무한대로 나눌 것을 요구했기 때문에 실현되었습니다.

그래서, 저는 그것을 고쳤습니다. 그러나 파이어 폭스가 그걸로 괜찮은지 궁금합니다. 틀림없이, 이것은 프로그래밍보다는 수학 문제에 더 가깝습니다. ;)

+0

오프 포인트이지만 다소 흥미롭고 여기에 대한 답변과 관련이 있습니다. - 숫자를 작은 숫자로 나누어 무한대 나누기를 물리적으로 시뮬레이션 할 수 있습니다. 예를 들어, 12/0000000000000.1은 12/inf에 매우 가깝습니다. 작은 숫자를 추가하십시오. – Phil

+5

@ Phil, 어쩌면 당신은 매우 큰 숫자를 의미했을까요? – Victor

답변

5

IE의 버그라고 생각합니다. IEEE 수학의 규칙에 따르면, n/Inf = 0 (n! = 0). 따라서 IE가이 문제를 극복하면 IE의 문제입니다. 반대로, 일반적인 수학 연산에서 Inf를 사용하는 것은 문제가 있으며, 코드가 처음에는 의존하지 않는다면 더 좋을 것입니다.

왜 위험합니까?

1/0 = Inf 
1/-0 = -Inf 

을하지만 우리는 분명히 바람직하지 않다 따라서 0 = -0,

Inf = -Inf 

것을 알고 : 음, 우선, IEEE 754에 따라. IEEE는 Inf를 평범한 숫자로 만들려고하지 않았습니다. Inf와 NaN은 고유의 제한된 정밀도와 오버 플로우 문제를 가진 컴퓨터에서 부동 소수점 연산을 만들기 위해 존재합니다. 가장 간단한 예를 들면 실제 숫자 집합이 추가로 닫히는 보통의 세계 산술과 비슷합니다. 다른 실수). 유한 정밀도 부동 소수점을 사용하여 부동 소수점을 지정하면 두 개의 숫자를 추가하면 오버플로가 발생하는 경우가 발생합니다. 이것을 오류 조건으로 처리하지 않으려면 IEEE는 Inf와 NaN이라는 두 개의 추가 기호와 해당 동작에 대한 규칙 집합을 도입했습니다. 이제 수학 연산의 결과는 항상 숫자, 즉 Inf 또는 NaN이며, 결과가 의미가 있는지 여부는 사용자에게 남습니다.

7

무한대로 나누면 괜찮습니다. 0입니다.

+0

오! 따라서 파이어 폭스가 잘 작동한다고 설명한다. IE는 아마 수학에 좋지 않을까요? –

+0

+0과 -0 (IEEE 수학이하는 것)을 구별 할 때 여기에 몇 가지 기호가 있습니다 ... – dmckee

-1

무한대로 숫자를 나누기 (일반적으로 최소한의) 정의되지 무한대로 무한대를 분할하지 않는 한 것은 수학적 관점에서 완벽하게 합리적이다. 실제로 0에 도달하지 않고 무한히 0에 가까운 숫자입니다.

소프트웨어 관점에서 볼 때 무한대는 개별적으로 표현할 수있는 값이 아니기 때문에 훨씬 어렵습니다. 내 생각에 행동의 차이는 디자인 결정에 근거 할 것입니다.

파이어 폭스에서는 모든 실제 목적으로이 결과가 필요한만큼 작동하기 때문에 아마도 0의 값을 반환하기로했습니다.

IE에서 개발자는 개발자가 개별적인 대답을 줄 수 없다는 것을 알고있는 계산을 수행하지 않도록 의식적으로 결정한 것으로 보입니다.

+1

말도 안돼. 숫자는 아무 것도 접근하지 않습니다. 숫자 시리즈가 있습니다. – Victor

+0

무한대는 javascript - alert (Infinity) – Greg

+0

에서 나타낼 수 있습니다. 누적 된 circumlocution은 "ε이 바운드없이 성장하는 n/엡실론의 한계"는 0입니다. – dmckee