it-swarm-es.com

¿Cómo se maneja el idioma [x] forma indeterminada como 0 ^ 0?

Como X va a 0, los límites de x ^ 0 y 0 ^ x van a 1 y 0, respectivamente. Algunos dicen que el mejor valor para 0 ^ 0 depende del contexto, otros dicen que el valor de 0 ^ 0 debe ser 1. Estoy interesado en saber cuáles dicen sus implementadores de idiomas. No parece haber un consenso. Por ejemplo, en Activestate Perl 5.12.0:

C: \> Perl -e "Imprimir 0 ** 0" 
 1

Mientras que en Mathematica 6.0:

En [1]: = 0 ^ 0 [.____] Durante la evaluación de [1]: = Potencia :: Indent: 
 Expresión indeterminada 0 ^ 0 Encontrado. >> 
 Fuera [1] = indeterminado

También estoy interesado en conocer su opinión sobre el asunto: ¿Qué debería ser 0 ^ 0? ¿Y también si alguna vez ha introducido un error en un programa que estaba escribiendo (o le ha tenido dificultades para depurar un programa) debido a la forma en que la forma en que se maneja los formas indeterminadas de su idioma?

2
A. N. Other

Según este artículo de Wikipedia,

"La mayoría del lenguaje de programación con una función de potencia se implementan utilizando la función IEEE POW y, por lo tanto, evalúe 0 ^ 0 como 1. Los estándares posteriores C y C++ describen esto como el comportamiento normativo. Los Java estándar este comportamiento. El Método Framework System.Math.Pow también trata 0 ^ 0 como 1. "

4
tcrosley

Pitón:

>>> for t in [int, float, complex, fractions.Fraction, decimal.Decimal]:
...     print(t, t(0)**0)
... 
<type 'int'> 1
<type 'float'> 1.0
<type 'complex'> (1+0j)
<class 'fractions.Fraction'> 1
Traceback (most recent call last):
  ...
decimal.InvalidOperation: 0 ** 0
3
Pi Delport

Google dice:

0 ^ 0 = 1

1
Chris

Delphi tiene 2 valores flotantes: NaN y Infinity. Que se devuelven en caso de rareza.

Pero no tiene una función de exponentiación incorporada.

^ es para los punteros, como en "¡Oye, ahí arriba, te estoy apuntando!"

0
Peter Turner