C'est peanuts, mais ça inclut les nombres qu'un utilisateur humain entre dans une calculatrice
2017 rentre dans une calculatrice, 2017^{2017} aussi, mais le résultat te donne une erreur.
On parlait bien de calculateur formel ? (tu embrayes sur la calculatrice là).
La calculatrice fait les mêmes erreurs que python (sauf qu'elle utilise la représentation BCD pour éviter de surprendre l'utilisateur quand il manipule des décimaux). Dès qu'on la fait calculer avec des 1/3, paf !, elle fait les mêmes "bêtises" que Python.
Si on reparle de calculateur formel, celui qui l'utilise aujourd'hui est un utilisateur d'un type spécial: il sait que son calculateur ne peut faire que très peu de choses et il doit malgré tout sortir des choses cohérentes. Ca nécessite des connaissances (souvent importantes), pour arriver à faire des choses intéressantes malgré tout.
Il est en revanche possible de promettre de ne pas retourner de résultat faux ou imprécis, pour peu qu'on s'autorise à retourner "je ne sais pas", quand on sort (ou risque de sortir) des capacités de la machine pour la représentation utilisée.
Ce n'est malheureusement pas du tout le cas (sauf à faire des petits calculs tout gentils). Mais, par exemple: tu demandes à Maple ou Mathematica (ou ce que tu veux) de calculer la somme des \cos\left(n^2\right) pour n variant de 1 à 10000000 (par exemple pour conjecturer si la série est bornée). Tous les nombres en jeu sont gentils (pas trop gros) et pourtant, si tu fais l'expérience, en lui demandant 2 chiffres après la virgule de précision, elle va te renvoyer un truc du genre 32.45, puis tu lui en demandes le même calcul avec 3 chiffres de précision et elle peut te renvoyer un truc du genre -1234.769 (fais l'expérience).
Pourtant les nombres manipulés sont petits, pourtant tu as demandé d'augmenter la précision (chaque fois que tu vas demander d'augmenter la précision tu obtiendras des résultats totalement farfelus qui semblent contradictoires).
Donc, non, un calculateur formel, ne permet que dans des cas simples, des "cas d'école", de donner des résultats satisfaisants mais la plupart du temps, dès qu'on en a justement carrément besoin, ça calcule comme ça peut, c'est à dire très mal. Et c'est normal car:
Aucun système de calcul basé sur les machines actuelles ne peut prétendre ne serait-ce que de manipuler correctement les réels de [0;1].
Ce n'est pas parce qu'on est mauvais, mais parce qu'on est assez bon pour démontrer que c'est impossible.
Bon après, si on touche aux ordinateurs quantiques, ça change tout hein (même s'il n'y aura toujours pas de miracle). Mais là je parle des machines classiques.
[^] # Re: Rien de surprenant
Posté par snowball (site web personnel) . En réponse au journal [Humour] vers un monde différent. Évalué à 5.
2017 rentre dans une calculatrice, 2017^{2017} aussi, mais le résultat te donne une erreur.
On parlait bien de calculateur formel ? (tu embrayes sur la calculatrice là).
La calculatrice fait les mêmes erreurs que python (sauf qu'elle utilise la représentation BCD pour éviter de surprendre l'utilisateur quand il manipule des décimaux). Dès qu'on la fait calculer avec des 1/3, paf !, elle fait les mêmes "bêtises" que Python.
Si on reparle de calculateur formel, celui qui l'utilise aujourd'hui est un utilisateur d'un type spécial: il sait que son calculateur ne peut faire que très peu de choses et il doit malgré tout sortir des choses cohérentes. Ca nécessite des connaissances (souvent importantes), pour arriver à faire des choses intéressantes malgré tout.
Ce n'est malheureusement pas du tout le cas (sauf à faire des petits calculs tout gentils). Mais, par exemple: tu demandes à Maple ou Mathematica (ou ce que tu veux) de calculer la somme des \cos\left(n^2\right) pour n variant de 1 à 10000000 (par exemple pour conjecturer si la série est bornée). Tous les nombres en jeu sont gentils (pas trop gros) et pourtant, si tu fais l'expérience, en lui demandant 2 chiffres après la virgule de précision, elle va te renvoyer un truc du genre 32.45, puis tu lui en demandes le même calcul avec 3 chiffres de précision et elle peut te renvoyer un truc du genre -1234.769 (fais l'expérience).
Pourtant les nombres manipulés sont petits, pourtant tu as demandé d'augmenter la précision (chaque fois que tu vas demander d'augmenter la précision tu obtiendras des résultats totalement farfelus qui semblent contradictoires).
Donc, non, un calculateur formel, ne permet que dans des cas simples, des "cas d'école", de donner des résultats satisfaisants mais la plupart du temps, dès qu'on en a justement carrément besoin, ça calcule comme ça peut, c'est à dire très mal. Et c'est normal car:
Aucun système de calcul basé sur les machines actuelles ne peut prétendre ne serait-ce que de manipuler correctement les réels de [0;1].
Ce n'est pas parce qu'on est mauvais, mais parce qu'on est assez bon pour démontrer que c'est impossible.
Bon après, si on touche aux ordinateurs quantiques, ça change tout hein (même s'il n'y aura toujours pas de miracle). Mais là je parle des machines classiques.