Pourquoi est-Mathématiques.pow(0, 0) === 1?

Nous savons tous que 00 est indéterminée.

Mais, javascript dit que:

Math.pow(0, 0) === 1 //true

et C++ dit la même chose:

pow(0, 0) == 1 //true

POURQUOI?

Je sais que:

>Math.pow(0.001, 0.001)
0.9931160484209338

Mais pourquoi ne Math.pow(0, 0) jeter pas d'erreurs? Ou peut-être un NaN serait mieux que 1.

  • En vertu de la définition standard, "a<sup>b</sup> = exp(b ln(a))", c'est pas défini. En essayant de la définir comme "limite<sub>x>0</sub> f(x)<sup>g(x)</sup>", où "f" et "g" les deux ont des limites de zéro donne une valeur indéterminée, car il dépend de votre choix de fonctions. (Mes excuses pour la déformation de la notation; je ne peux pas comprendre comment obtenir des exposants dans les commentaires).
  • oui, je suis consciente que 0⁰ (utiliser des caractères unicode) n'est pas défini compte tenu de cette définition, cependant, si vous lisez mon commentaire vous devriez noter que la citation des références au "monde des mathématiques" plutôt qu'une "définition standard". C'est cette différence que j'ai été à l'origine de renvoi, et la question a été mis à jour pour corriger cette nuance.
  • Euh...a^0 = 1 pour les non-zéro.
  • Il permet des fonctions qui dépendent des produits de probabilités de livrer des résultats sensées. C'est une mauvaise idée que les ordinateurs sont symboliques de mathématiques de processeurs. Le langage C a une mise en œuvre spécifique dans le monde réel, tandis que votre monde mathématique est peut-être trop idéal pour être inplemented dans le silicium.
  • Pour les mathématiques, la version de cette question — “pourquoi avons-nous souvent de définir 0^0 = 1?” — math.stackexchange a beaucoup de bonnes réponses: math.stackexchange.com/questions/11150/...
  • À mon humble avis, 0^0 doit être NaN, juste 0/0 est pour la virgule flottante, parce que la limite n'est pas définie de manière unique. En revanche, 1/0 EST bien défini comme l'Infini. Toute personne qui fait valoir que 0^0 devrait être de 1 car x^0=1 pour les non-zero x est seulement à la recherche à la moitié de celui - ci- ne pas oublier que 0^y=0 pour y>0. Je pense que la vraie réponse à cette question est "parce que CS majors ne sont plus les majors de mathématiques, comme ils étaient dans les années 1940."