C ++ 에서 pow (0, 0) 의 결과는 기본적으로 구현 정의 된 동작입니다. 수학적으로 N^0는 항상 있어야 1하지만 0^N항상 0for 여야 하는 모순적인 상황 N > 0이 있으므로이 결과에 대해 수학적으로 기대할 수 없습니다. 이 Wolfram Alpha 포럼 게시물은 좀 더 자세한 내용을 담고 있습니다.
IEC 60559 부동 소수점 산술 지원을 다루는 섹션에서 국제 표준 (프로그래밍 언어) C에 대한 이론적 설명에 따라 pow(0,0)결과를 갖는 1것이 많은 응용 프로그램에 유용 하지만
일반적으로 C99는 숫자 값이 유용한 NaN 결과를 피합니다. [...] pow (∞, 0) 및 pow (0,0)의 결과는 모두 1입니다.이 정의를 이용할 수있는 응용 프로그램이 있기 때문입니다. 예를 들어, x (p)와 y (p)가 p = a에서 0이되는 분석 함수라면 exp (y * log (x))와 같은 pow (x, y)는 p가 접근 할 때 1에 접근합니다. ㅏ.
C ++ 업데이트
leemes가 제대로 지적한 바와 같이 나는 원래의 기준에 연결된 복잡한 버전 펑 그동안 복잡하지 않은 그것이 버전 주장 도메인 오류 초안 C ++ 표준은 받는 다시 떨어질 초안 C 표준 모두 C99 및 C11 섹션에서 7.12.7.4 포로 기능의 단락 2 말한다 ( 내 강조 ) :
[...] x가 0이고 y가 0이면 도메인 오류 가 발생할 수 있습니다 . [...]
내가 알 수있는 한이 동작은 지정되지 않은 동작 임을 의미합니다 . 약간의 섹션을 되감기 7.12.1 오류 조건 처리 는 다음과 같이 말합니다.
[...] 입력 인수가 수학적 함수가 정의 된 도메인 외부에있는 경우 도메인 오류가 발생합니다. [...] 도메인 오류에서 함수는 구현 정의 값을 반환합니다. 정수 표현식 math_errhandling & MATH_ERRNO가 0이 아니면 정수 표현식 errno는 값 EDOM을 획득합니다. [...]
있었다 그래서 만약 도메인 오류 다음이 될 것이다 구현 정의 행동 하지만 최신 버전 모두 gcc와 clang의 값 errno입니다 0그것이되지 않도록 도메인 오류 그 컴파일러.
자바 스크립트 업데이트
를 들어 자바 스크립트 ECMAScript® 언어 사양 섹션에서 15.8 Math 객체 에서 15.8.2.13 펑 (x, y)는 다른 조건이 사이에 말한다 :
y가 +0이면 x가 NaN이더라도 결과는 1입니다.