Disciplinas relacionadas con la matemática => Temas de computación => Mensaje iniciado por: Andri Lopez en 29/01/2019, 03:35:30 pm



Título: Errores en las calculadoras
Publicado por: Andri Lopez en 29/01/2019, 03:35:30 pm
Errores en las calculadoras de todo el mundo. Está en el numero [texx]42*10^{30} + 31[/texx].

Las calculadoras dan de valor:

[texx]42*10^{30} + 31 = 37*1135135135135135135135135135136[/texx].

Su valor es:

[texx]42*10^{30} + 31 = 37*1135135135135135135135135135135 + 36[/texx].

Como consecuencia de este error existen infinitos errores, tales como:

[texx](42*10^{30} + 31)^{n} = (1135135135135135135135135135136) ^{n}[/texx]

[texx]n(42*10^{30} + 31) = n*37*1135135135135135135135135135136[/texx].

Con [texx] n = (1;2;3;4;5.........\infty)[/texx]


Título: Re: Errores en las calculadoras
Publicado por: mathtruco en 29/01/2019, 04:42:24 pm
Hola Andri Lopez, no sé si es un comentario o una pregunta.

Una calculadora normal (hasta el supercomputador más poderoso) tiene un número limitado de memoria, así que no trabajará con números con infinitos decimales. Por esto, hay que ser muy precavido al trabajar con números muy pequeños o muy grandes.


Título: Re: Errores en las calculadoras
Publicado por: Abdulai en 29/01/2019, 08:42:17 pm
Errores en las calculadoras de todo el mundo.

¿No es un poco exagerado hablar de "error"?

Cita
Está en el numero [texx]42*10^{30} + 31[/texx].

Las calculadoras dan de valor:

[texx]42*10^{30} + 31 = 37*1135135135135135135135135135136[/texx].

Su valor es:

[texx]42*10^{30} + 31 = 37*1135135135135135135135135135135 + 36[/texx].

Aparentemente en el ejemplo usaste la calculadore de Windows.
Esta muestra 32 cifras significativas, sin contar la coma y el ceros delante de la coma, y la última cifra se redondea.
Simplemente te está redondeando la última cifra.

Con mas cifras significativas 
[texx](42*10^{30} + 31)/37= 1135135135135135135135135135135.\underbrace{972972972}_{\text{redondea}}[/texx]

Pero eso es lo que muestra, internamente guarda algunos bits del resultado y los utiliza en la operación siguiente.

Si fuera  [texx]1/3= 0.33333333333333333333333333333333[/texx]  (un clásico) 
Internamente ha guardado unos bits, si ahora tecleo  [texx]*3=[/texx]  , es decir, lo que tenía en el display [texx]*3=[/texx] , el resultado es 1.

En cambio si ingreso a mano los 32 '3'
[texx]0.33333333333333333333333333333333*3=0.99999999999999999999999999999999 [/texx]  (32 '9')

Otro ejemplo puede ser con 
[texx](42*10^{30} + 31)=42000000000000000000000000000031[/texx]
Si al número mostrado le vas sumando [texx]0.1[/texx] sucesivamente, te va a mostrar siempre lo mismo. Recién al quinto va a pasar a 32.


La cantidad de bits "ocultos" depende de la calculadora, si se trata de computadoras de la precisión y lenguaje usados. 
Si bien en computadoras los procesadores matemáticos siempre siguieron parcialmente la norma IEEE 754 con variables en precisión simple,doble y cuádruple (4,8 y 16 bytes) , al viejo Turbo Pascal no le importaba pues incluía un tipo de 6 bytes.