Windows et les racines carrées

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J’ai récemment regardé une vidéo sur Youtube parlant de quelques trucs cachés dans Windows. Rien de bien intéressant sauf le dernier point qui m’a quelque peu intrigué.

Vous pouvez retrouver la démonstration sur la vidéo:

Vidéo de Poisson Fécond (à 8m56s)

Donc le principe consiste à faire la racine carrée d’un nombre dans la calculatrice et de soustraire à ce nombre le résultat de la racine carrée, qui devrait donc toujours donner un résultat de 0.

1
2
Exemple: Racine carrée de 4 => 2, et 2 - 2 = 0
Mais la calculatrice Windows indique dans cet exemple le résultat: -8.1648465955514287168521180122928e-39

Je voulais donc savoir si vous saviez s’il y avait une explication informatique à cela ?

Merci et bonne soirée.

Je peux me tromper, mais je pense que c’est par soucis de cohérence. 0 et 0.0 ne sont pas identiques. L’un est un entier, l’autre est un flottant. Il est donc plus pratique de ne manipuler que des variables du même type, et vu que le flottant est plus polyvalent, c’est celui-là qu’on prend.

Le langage Python suit d’ailleurs cette logique.

1
2
3
4
5
>>> import math
>>> math.sqrt(4)
2.0
>>> type(math.sqrt(4))
<class 'float'>
+0 -0

Bon par contre le type de la vidéo qui constate l’erreur et commente…

« une cochonnerie, une sorte de message crypté »
« Certains internautes pensent que ça serait des messages cachés glissés par les développeurs qui auraient chiffré une sorte d’alphabet secret où chaque chiffre incohérent correspondrait à une lettre. »

Comme tout ce qui touche au calcul dans l’informatique, ça ressemble à un effet de bord de la représentation standard des nombres flottants.

Même si ça pose beaucoup de problèmes, c’est très loin d’être la seule source de problème en analyse numérique… Typiquement ici, le fait que la racine n’est pas correctement calculé à $10^{-39}$ près (alors que la représentation IEEE 754 permet de descendre plus bas que ça en précision, la preuve étant que l’ordinateur est capable de voir la différence entre le carré de la racine approchée et le carré cible), c’est plus un problème de calcul de la racine qui n’exploite toute la précision possible. Ce n’est pas le sujet pour rentrer dans les détails, mais je souhaitais simplement nuancer cette affirmation.

+0 -0

Bon et bien merci de vos réponses. Bien que ça reste étrange pour moi que tous les systèmes ne donne pas la même chose (en l’occurrence l’exemple en python qui donne bien 2.0).

Bon par contre le type de la vidéo qui constate l’erreur et commente…

« une cochonnerie, une sorte de message crypté »
« Certains internautes pensent que ça serait des messages cachés glissés par les développeurs qui auraient chiffré une sorte d’alphabet secret où chaque chiffre incohérent correspondrait à une lettre. »

entwanne

:lol:

en l’occurrence l’exemple en python qui donne bien 2.0

Faut se méfier de ce que Python t’affiche.

1
2
3
4
>>> 0.1
0.1
>>> '{:.50f}'.format(0.1)
'0.10000000000000000555111512312578270211815834045410'
+4 -0

Bon par contre le type de la vidéo qui constate l’erreur et commente…

« une cochonnerie, une sorte de message crypté »
« Certains internautes pensent que ça serait des messages cachés glissés par les développeurs qui auraient chiffré une sorte d’alphabet secret où chaque chiffre incohérent correspondrait à une lettre. »

entwanne

En même temps poison fécond c est un des mec les plus putaclic du youtube game, toujours prêt à raconter n importe quoi en ayant vaguement l air "scientifique". S exposer à ses vidéos plus d heure augmenterai de 125% le risque de cancer du cerveau…

+1 -1
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte