Autor Tema: Errores en las calculadoras

0 Usuarios y 1 Visitante están viendo este tema.

29 Enero, 2019, 07:35 pm
Leído 4092 veces

Andri Lopez

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 23
  • País: es
  • Karma: +0/-0
Errores en las calculadoras de todo el mundo. Está en el numero \( 42*10^{30} + 31 \).

Las calculadoras dan de valor:

\( 42*10^{30} + 31 = 37*1135135135135135135135135135136 \).

Su valor es:

\( 42*10^{30} + 31 = 37*1135135135135135135135135135135 + 36 \).

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

\( (42*10^{30} + 31)^{n} = (1135135135135135135135135135136) ^{n} \)

\( n(42*10^{30} + 31) = n*37*1135135135135135135135135135136 \).

Con \(  n = (1;2;3;4;5.........\infty) \)

29 Enero, 2019, 08:42 pm
Respuesta #1

mathtruco

  • Moderador Global
  • Mensajes: 5,552
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
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.

30 Enero, 2019, 12:42 am
Respuesta #2

Abdulai

  • Moderador Global
  • Mensajes: 2,852
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Errores en las calculadoras de todo el mundo.

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

Citar
Está en el numero \( 42*10^{30} + 31 \).

Las calculadoras dan de valor:

\( 42*10^{30} + 31 = 37*1135135135135135135135135135136 \).

Su valor es:

\( 42*10^{30} + 31 = 37*1135135135135135135135135135135 + 36 \).

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 
\( (42*10^{30} + 31)/37= 1135135135135135135135135135135.\underbrace{972972972}_{\text{redondea}} \)

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

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

En cambio si ingreso a mano los 32 '3'
\( 0.33333333333333333333333333333333*3=0.99999999999999999999999999999999  \)  (32 '9')

Otro ejemplo puede ser con 
\( (42*10^{30} + 31)=42000000000000000000000000000031 \)
Si al número mostrado le vas sumando \( 0.1 \) 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.

26 Octubre, 2019, 01:22 am
Respuesta #3

paulinafriaslopez

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 1
  • Karma: +0/-0
  • Sexo: Femenino
¿Pero como podemos darnos de estos errores en las calculadoras y por que sucede?