J'ai vérifié le résultat de 0 ^ 0 dans la calculatrice sur différentes versions:
- iOS 10.3 => 1
- iOS 11.4 => Erreur
- macOS 10.12.6 => 1
- macOS 10.13.5 => Pas un nombre
Quelle est la raison de la différence?
J'ai vérifié le résultat de 0 ^ 0 dans la calculatrice sur différentes versions:
Quelle est la raison de la différence?
Réponses:
Alors que 0⁰ n'est généralement pas défini, certaines branches des mathématiques le définissent explicitement comme 1 car, comme vous pouvez le voir , c'est la valeur à laquelle la fonction y (x) = xˣ converge à n = 0.
Moins formellement, notons que 0,5 0,5 = 0,707…; 0,2 0,2 = 0,725…; 0,1 0,1 = 0,794… et 0,01 0,01 = 0,955…. Lorsque vous approchez de 0, le résultat se rapproche de 1, ce qui rend assez logique et pratique de définir 0 ^ 0 comme 1 dans certains cas .
Ainsi, aucun de ces 3 résultats n'est incorrect en soi et au lieu de cela, ils reflètent tous des conventions différentes sur la valeur de cette expression non définie.
Il y a un bon article Wikipedia expliquant le problème. Voir aussi Zero to the zero power - is 0⁰ = 1? .
La plupart des implémentations de l'arithmétique à virgule flottante suivent la norme IEEE 754-2008, qui spécifie que pow (0,0) renvoie 1 (voir §9.2.1).
Mais il définit également deux autres fonctions: pown (0,0) = 1 et powr (0,0) = NaN.
Wikipedia le résume comme suit :
La norme à virgule flottante IEEE 754-2008 est utilisée dans la conception de la plupart des bibliothèques à virgule flottante. Il recommande un certain nombre d'opérations pour calculer une puissance: [20]
pow traite 0 0 comme 1. Si la puissance est un entier exact, le résultat est le même que pour pown, sinon le résultat est comme pour powr (sauf dans certains cas exceptionnels).
pown traite 0 0 comme 1. La puissance doit être un entier exact. La valeur est définie pour les bases négatives; par exemple, pown (−3,5) est −243. powr traite 0 0 comme NaN (Not-a-Number - undefined). La valeur est également NaN pour les cas comme powr (−3,2) où la base est inférieure à zéro. La valeur est définie par epower × log (base).
La variante pow est inspirée de la fonction pow de C99, principalement pour la compatibilité. [21] Il est utile principalement pour les langues avec une seule fonction de puissance. Les variantes pown et powr ont été introduites en raison de l'utilisation conflictuelle des fonctions de puissance et des différents points de vue (comme indiqué ci-dessus). [22]
Bien sûr, cela n'a aucune incidence sur le résultat mathématique correct: comme d'autres l'ont noté, il y a plus d'une réponse possible, et l'IEEE a dû prendre une décision arbitraire.
Quelqu'un chez Apple a compris que 0 ^ 0 est une opération non valide et l'a corrigé.
Zéro à la puissance de zéro est une contradiction
Cela devrait générer une erreur. La seule raison pour laquelle vous ne voyez pas d'erreur générée est due au fait que la version de la calculatrice en question n'a pas intercepté cette erreur d'entrée.
Il existe une certaine controverse à propos de 0⁰ qui se résume à la fonction x ^ y ayant une discontinuité à (x, y) -> (0,0). Ceci est une semi-controverse car il est absurde mathématique d'interdire une fonction ayant une valeur à une discontinuité.
Il est courant d'incorporer des entiers dans les réels de sorte qu'une fonction définie sur les réels corresponde à la même fonction définie sur les entiers chaque fois que la fonction réelle prend des valeurs intégrales. Il est donc inutile de distinguer 0,0 ^ 0 de 0,0 ^ 0,0.
Maintenant, x⁰ avec le nombre entier 0 comme exposant est un produit contenant exactement zéro facteur de x. Comme aucun facteur de x n'est contenu dans sa valeur, il ne sert à rien de lui attribuer une valeur dépendant de x, et sa valeur en tant que produit vide est assez clairement 1, l'élément neutre pour la multiplication.
Cela a également du bon sens car il ne restreint pas arbitrairement le théorème binomial à des valeurs non nulles. D'une certaine manière, c'est un argument basé sur le fait d'essayer de compléter la fonction x⁰ sensiblement à x = 0, la rendant définie et continue partout.
Si nous essayons cela avec la fonction 0 ^ x à la place, la limite à x = 0 + peut être 0, mais la définir comme telle n'aide toujours pas à guérir la discontinuité essentielle puisque la fonction n'est pas définie pour x négatif.
Maintenant, les calculatrices ont tendance à calculer x ^ y comme exp (y * ln (x)). Bien sûr, c'est une mauvaise nouvelle pour x = 0. De telles valeurs doivent donc être programmées explicitement ou vous arriverez à pas un nombre. Pour une programmation explicite, vous devez vous fier à l'intuition mathématique du programmeur, et le programmeur type sera davantage guidé par l'intuition pseudomathématique comme "une fonction doit être continue là où elle est définie" qu'un mathématicien.
De plus, vous pouvez vous attendre à une vague de commentaires de différents utilisateurs, et les mathématiciens purs ne reviendront pas autant aux calculatrices pour leur vision de la vérité mathématique, vous ne pouvez donc pas vous attendre à ce que leur contribution submerge celle des autres.
Le résultat est donc plus démocratique que mathématique, et les majorités démocratiques ont tendance à changer.