¿Por qué 0 ^ 0 en la calculadora macOS y iOS dan diferentes resultados en diferentes versiones?

17

He comprobado el resultado de 0 ^ 0 en la calculadora en diferentes versiones:

  • iOS 10.3 = > 1
  • iOS 11.4 = > Error
  • macOS 10.12.6 = > 1
  • macOS 10.13.5 = > No es un número

¿Cuál es la razón de la diferencia?

    
pregunta mspanc 06.07.2018 - 20:44

5 respuestas

21

Aunque 0⁰ generalmente no está definido, algunas ramas de las matemáticas lo definen explícitamente como 1 porque, como puede ver , este es el valor en el que la función y (x) = xˣ converge en n = 0.

Menos formalmente, tenga en cuenta que 0.5 0.5 = 0.707 ...; 0.2 0.2 = 0.725…; 0.1 0.1 = 0.794… y 0.01 0.01 = 0.955…. A medida que se acerque a 0, el resultado se acercará a 1, lo que lo hace bastante lógico y práctico para definir 0 ^ 0 como 1 en algunos casos .

Por lo tanto, ninguno de estos 3 resultados es incorrecto en sí mismo, sino que todos reflejan convenciones diferentes sobre el valor de esta expresión indefinida.

Hay un buen artículo de Wikipedia que explica el problema. Consulte también Cero a la potencia cero: ¿0⁰ = 1? .

    
respondido por el undercat 07.07.2018 - 02:12
13

La mayoría de las implementaciones de aritmética de punto flotante siguen el estándar IEEE 754-2008, que especifica que pow (0,0) devuelve 1 (ver §9.2.1).

Pero también define otras dos funciones: pown (0,0) = 1 y powr (0,0) = NaN.

Wikipedia lo resume de la siguiente manera :

  

El estándar de punto flotante IEEE 754-2008 se utiliza en el diseño de   La mayoría de las bibliotecas de punto flotante. Se recomienda una serie de operaciones.   para calcular una potencia: [20]

     

pow trata a 0 0 como 1. Si la potencia es un entero exacto, el resultado es el   igual que para pown, de lo contrario el resultado es como para powr (a excepción de algunos   casos excepcionales).

     

pown trata a 0 0 como 1. La potencia debe ser una exacta   entero. El valor se define para las bases negativas; por ejemplo, pown (−3,5) es   −243. powr trata 0 0 como NaN (No es un número - no definido). El valor es   también NaN para casos como powr (−3,2) donde la base es menor que cero.   El valor está definido por epower × log (base).

     

La variante pow está inspirada   por la función pow de C99, principalmente por compatibilidad. [21] Es   Útil sobre todo para idiomas con una sola función de potencia. El pown y   Se han introducido variantes de powr debido a un uso conflictivo de la   funciones de poder y los diferentes puntos de vista (como se indica   arriba). [22]

Por supuesto, esto no tiene relación con el resultado matemático correcto: como han señalado otros, hay más de una respuesta posible, e IEEE tuvo que tomar una decisión arbitraria.

    
respondido por el Michael Kay 07.07.2018 - 10:51
5

Alguien en Apple descubrió que 0 ^ 0 no es una operación válida y lo solucionó.

    
respondido por el nohillside 06.07.2018 - 20:51
5

Cero a la potencia de cero es una contradicción

  • 0 veces cualquier número es 0
  • cualquier número al poder 0 es 1

Se debería generar un error. La única razón por la que no ve que se genere un error se debe a que la versión de la Calculadora en cuestión no quedó atrapada por ese error de entrada.

    
respondido por el Allan 06.07.2018 - 20:52
4

Hay cierta semicontroversia sobre 0⁰ que se reduce a la función x ^ y que tiene una discontinuidad en (x, y) - > (0,0). Esto es una controversia ya que no tiene sentido matemático prohibir que una función tenga un valor en una discontinuidad.

Es una práctica general incrustar enteros en los reales, de modo que una función definida en los reales coincida con la misma función definida en enteros siempre que la función real asuma valores integrales. Por lo tanto, no tiene mucho sentido distinguir 0.0 ^ 0 de 0.0 ^ 0.0.

Ahora x⁰ con el entero 0 como exponente es un producto que contiene exactamente cero factores de x. Dado que no hay factores de x en su valor, no tiene mucho sentido asignarle un valor dependiendo de x, y su valor como producto vacío es bastante claro 1, el elemento neutral para la multiplicación.

Esto también tiene sentido, ya que no restringe arbitrariamente el teorema binomial a valores distintos de cero. De una manera, este es un argumento basado en tratar de completar la función x⁰ sensiblemente en x = 0, haciéndola definida y continua en todas partes.

Si intentamos esto con la función 0 ^ x en cambio, el límite en x = 0 + puede ser 0, pero definirlo como tal todavía no ayuda a curar la discontinuidad esencial ya que la función no está definida para x negativa.

Ahora las calculadoras tienden a calcular x ^ y como exp (y * ln (x)). Por supuesto que son malas noticias para x = 0. Por lo tanto, dichos valores deben programarse explícitamente o usted llegará a un no-número. Para la programación explícita, tiene que confiar en la intuición matemática del programador, y el programador típico se guiará más por la intuición pseudomatemática como "una función debe ser continua donde se defina" de lo que un matemático haría.

Además, puede esperar una avalancha de comentarios de diferentes usuarios, y los matemáticos puros no volverán a las calculadoras por su visión de la verdad matemática, por lo que no pueden esperar que sus comentarios inunden la de otros.

Entonces, el resultado es democrático más que matemático, y las mayorías democráticas tienden a cambiar.

    
respondido por el user294112 07.07.2018 - 22:39

Lea otras preguntas en las etiquetas