macOS 및 iOS 계산기에서 0 ^ 0이 다른 버전에서 다른 결과를 제공하는 이유는 무엇입니까? => 1 iOS 11.4 => 오류 macOS

다른 버전의 계산기에서 0 ^ 0의 결과를 확인했습니다.

  • iOS 10.3 => 1
  • iOS 11.4 => 오류
  • macOS 10.12.6 => 1
  • macOS 10.13.5 => 숫자가 아님

차이점의 이유는 무엇입니까?



답변

0⁰ 일반적 미정이지만, 수학 몇 가지 명시 할 정의 때문에 1로 볼 수있는 바와 같이 ,이 함수 y는 (X) = X는 N = 0에 수렴하는 값이다.

덜 공식적으로는 0.5 0.5 = 0.707…; 0.2 0.2 = 0.725…; 0.1 0.1 = 0.794… 및 0.01 0.01 = 0.955… 0에 접근하면 결과가 1에 가까워 지므로 어떤 경우에는 0 ^ 0을 1 로 정의 하는 것이 매우 논리적이고 편리합니다 .

따라서이 3 가지 결과 중 그 어느 것도 부정확하지 않으며 대신이 정의되지 않은 표현식의 값에 대해 서로 다른 규칙을 반영합니다.

이 문제를 설명 하는 좋은 Wikipedia 기사 가 있습니다 . 영점의 영점 도 참조 – 0⁰ = 1? .


답변

부동 소수점 산술의 대부분의 구현은 IEEE 754-2008 표준을 따르며, pow (0,0)은 1을 반환하도록 지정합니다 (§9.2.1 참조).

그러나 pown (0,0) = 1 및 powr (0,0) = NaN의 두 가지 다른 함수도 정의합니다.

Wikipedia는 다음과 같이 요약합니다 .

IEEE 754-2008 부동 소수점 표준은 대부분의 부동 소수점 라이브러리 설계에 사용됩니다. 다음과 같이 전력 계산을위한 여러 가지 작업을 권장합니다. [20]

pow는 0 0 을 1로 취급 합니다. 거듭 제곱이 정확한 정수이면 결과는 pown과 동일하고, 그렇지 않으면 결과는 powr와 같습니다 (일부 예외적 인 경우 제외).

pown은 0 0 을 1로 취급합니다 . 거듭 제곱은 정확한 정수 여야합니다. 이 값은 음의 염기에 대해 정의됩니다. 예를 들어, pown (-3,5)는 -243입니다. powr은 0 0 을 NaN (Not-a-Number – undefined)으로 처리합니다. 밑이 0보다 작은 powr (−3,2)와 같은 경우에는 값도 NaN입니다. 값은 epower × log (base)로 정의됩니다.

pow 변형은 주로 호환성을 위해 C99의 pow 기능에서 영감을 얻었습니다. [21] 주로 단일 전원 기능을 가진 언어에 유용합니다. pown과 powr 변형은 위에서 언급 한 것처럼 전력 함수와 다른 관점의 충돌로 인해 도입되었습니다. [22]

물론 이것은 올바른 수학적 결과가 무엇인지에 영향을 미치지 않습니다. 다른 사람들이 지적했듯이 가능한 대답이 둘 이상이며 IEEE는 임의의 결정을 내려야했습니다.


답변

Apple의 누군가가 0 ^ 0이 유효하지 않은 작업임을 알고 그것을 고쳤습니다.


답변

0의 거듭 제곱은 모순입니다

  • 0은 모든 숫자가 0입니다
  • 0 제곱의 숫자는 1입니다

그것은 해야 오류를 생성합니다. 오류가 생성되지 않는 유일한 이유는 문제의 계산기 버전이 해당 입력 오류를 트랩하지 않았기 때문입니다.


답변

(x, y)-> (0,0)에서 불연속성을 갖는 x ^ y 함수로 요약되는 0⁰에 대한 반 논의가있다. 불연속 값을 갖는 함수를 금지하는 것은 수학적 넌센스이기 때문에 이것은 반론입니다.

실수에 정의 된 함수가 실수 함수가 정수 값을 취할 때마다 정수에 정의 된 동일한 함수와 일치하도록 정수를 실수에 임베드하는 것이 일반적입니다. 따라서 0.0 ^ 0과 0.0 ^ 0.0을 구별하는 데는 아무런 소용이 없습니다.

이제 지수가 정수 0 인 x⁰는 정확히 0의 x 요소를 포함하는 곱입니다. x의 인자가 그 값에 포함되어 있지 않기 때문에, x에 의존하는 값을 할당하는 데는 별다른 의미가 없으며, 빈 곱으로서의 값은 곱셈의 중립 요소 인 1이 분명합니다.

이항 정리를 임의로 0이 아닌 값으로 제한하지 않기 때문에 이치에 맞습니다. 어떤 식으로, 이것은 x = 0에서 x⁰ 함수를 현명하게 완성하려고 시도하는 것에 근거한 주장이며, 어디에서나 정의되고 연속적입니다.

함수 0 ^ x로 이것을 시도하면 x = 0 +의 한계는 0이 될 수 있지만,이를 x로 정의하면 함수가 음의 x에 대해 정의되지 않기 때문에 필수 불연속성을 치료하는 데 도움이되지 않습니다.

이제 계산기는 x ^ y를 exp (y * ln (x))로 계산하는 경향이 있습니다. 물론 그것은 x = 0에게는 나쁜 소식입니다. 따라서 이러한 값은 명시 적으로 프로그래밍해야합니다. 그렇지 않으면 숫자가 아닙니다. 명시 적 프로그래밍의 경우 프로그래머의 수학적 직관에 의존해야하며 일반적인 프로그래머는 수학자보다 “함수가 정의 된 위치에서 연속적이어야합니다”와 같은 의사 수학적 직관에 의해 더 많이 안내됩니다.

또한 다른 사용자의 의견이 많을 것으로 예상 할 수 있으며 순수한 수학자는 수학 진리에 대한 비전을 계산하기 위해 계산기로 되돌아 가지 않으므로 다른 사람들의 의견을 습격 할 수 없습니다.

결과는 수학적인 것보다 민주적 인 것입니다. 그리고 민주적 인 대다수는 변하는 경향이 있습니다.