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 chiffre
Quelle est la raison de cette différence ?
J'ai vérifié le résultat de 0^0 dans la calculatrice sur différentes versions :
Quelle est la raison de cette différence ?
Alors que 0 est généralement indéfini, certaines branches des mathématiques le font explicitement. définir c'est 1 parce que, comme vous pouvez le voir c'est la valeur vers laquelle converge la fonction y(x) = x à n=0.
De manière moins formelle, 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 . Au fur et à mesure que l'on s'approche de 0, le résultat s'approche de 1, ce qui rend assez logique et pratique le fait de définir 0^0 comme 1 dans certains cas .
Ainsi, aucun de ces 3 résultats n'est incorrect en soi et ils reflètent tous des conventions différentes sur la valeur de cette expression indéfinie.
Il y a une bonne Article de Wikipedia expliquant la question. Voir aussi Zéro à la puissance zéro - est-ce que 0=1 ? .
Je n'ai jamais rencontré auparavant ce raisonnement particulier pour fixer 0^0=1. Après tout, x^y n'a pas de limite comme (x,y)(0,0). Cependant Si vous écrivez un polynôme général sous la forme c_n x^n, où n dans la somme va de 0 à n (le degré du polynôme), il devient essentiel d'avoir 0^0=1, sinon le terme "constant" n'est pas si constant après tout. Voir aussi ici.
@HaraldHanche-Olsen C'est un point très perspicace, pensez à écrire une réponse, ou n'hésitez pas à modifier la mienne. Mon intuition venait du fait que la plupart des fonctions de la forme e^{x^ * ln^{x^ + }} convergent vers 1 (sauf pour =0 et peut-être quelques autres cas limites), et que cette classe est fréquemment rencontrée dans les applications d'ingénierie, c'est-à-dire le genre de choses pour lesquelles les gens utiliseront probablement l'application calculatrice, mais je comprends que c'est un peu tiré par les cheveux.
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. Elle recommande un certain nombre d'opérations pour calculer une puissance : [20]
pow traite 0 0 comme 1. Si la puissance est un nombre entier exact, le résultat est le même que pour pown. résultat est le même que pour pown, sinon le résultat est le même que pour powr (sauf pour certains cas cas exceptionnels).
pown traite 0 0 comme 1. La puissance doit être un entier exact entier exact. La valeur est définie pour les bases négatives ; par exemple, pown(3,5) vaut 243. powr traite 0 0 comme NaN (Not-a-Number - indéfini). 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 s'inspire de la fonction pow de C99, principalement pour des raisons de compatibilité[21]. utile surtout pour les langages avec une seule fonction 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é dans l'article). fonctions de puissance et aux 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 fait remarquer, il y a plus d'une réponse possible, et IEEE a dû prendre une décision arbitraire.
Zéro à la puissance zéro est une contradiction
Il devrait générer une erreur. La seule raison pour laquelle vous ne voyez pas d'erreur générée est que la version de Calculator en question n'a pas détecté cette erreur d'entrée.
Le site (amateur très rouillé) mathématicien voudrait argumenter que la la limite de 0^x est 0 lorsque x s'approche de 0 et que le la limite de x^x est 1 lorsque x s'approche de 0, donc vous avez une discontinuité qui est la définition même de l'indéterminé et me réchauffe l'oreille de voir NaN sur le seul vrai OS
réchauffe mes oreilles - des images de moutons bien au chaud faisant des problèmes de calcul avec leur Sheppard, @bmike :-D
Lol - Je ne peux pas corriger cette faute de frappe maintenant - un troupeau chaleureux s'entend mieux à l'oral qu'à l'écrit. De plus, mon cœur est toujours réchauffé par cette question, cette réponse et ce fil de commentaires.
Il y a une certaine semi-controverse à propos de 0 qui se résume à la fonction x^y ayant une discontinuité à (x,y)->(0,0). C'est une semi-controverse puisque c'est un non-sens mathématique d'interdire une fonction ayant une valeur à une discontinuité.
La pratique générale consiste à intégrer les entiers dans les réels de telle 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 .
Or, x avec l'entier 0 comme exposant est un produit contenant exactement zéro facteur de x. Puisqu'aucun facteur de x n'est contenu dans sa valeur, il n'y a guère d'intérêt à 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 sens, car cela ne restreint pas arbitrairement le théorème binomial à des valeurs non nulles. D'une certaine manière, il s'agit d'un argument basé sur la tentative de compléter la fonction x de manière raisonnable à x=0, la rendant définie et continue partout.
Si nous essayons ceci avec la fonction 0^x à la place, la limite à x=0+ peut être 0, mais la définir comme telle ne permet toujours pas de remédier à la discontinuité essentielle puisque la fonction est indé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. Donc de telles valeurs doivent être explicitement programmées ou vous arriverez à un non-nombre. Pour la programmation explicite, vous devez compter sur l'intuition mathématique du programmeur, et le programmeur typique sera plus guidé par une intuition pseudo-mathématique comme "une fonction doit être continue là où elle est définie" que ne le ferait un mathématicien.
En outre, vous pouvez vous attendre à une avalanche de commentaires de la part des différents utilisateurs, et les mathématiciens purs ne reviendront pas tant que ça aux calculatrices pour leur vision de la vérité mathématique, vous ne pouvez donc pas vous attendre à ce que leur contribution supplante celle des autres.
Le résultat est donc plus démocratique que mathématique, et les majorités démocratiques ont tendance à changer.
LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.
22 votes
Je vais devoir m'en tenir à High Sierra alors, car j'adore le pain NaN ;-))
5 votes
math.stackexchange.com/questions/11150/
0 votes
Également news.ycombinator.com/item?id=8502968 < (apple a arrêté de publier sa version de la bibliothèque mathématique libm)
3 votes
Est-ce que vous demandez pour comprendre les mathématiques, ou est-ce que vous demandez pour comprendre pourquoi Apple a changé son interprétation de 0^0 plusieurs fois ? Si c'est la première question, il y a une réponse acceptable affichée ; si c'est la seconde, alors il n'y a pas nécessairement de réponse.
0 votes
Dans la version 10.11.6 le résultat est 1