Ver Mensaje Individual
  #9 (permalink)  
Antiguo 01/11/2006, 08:57
Avatar de TolaWare
TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 20 años, 8 meses
Puntos: 24
El problema es mas profundo que un simple margen de error.

la diferencia entre las PC's y las matematicas es PRIMORDIALMENTE quelas matematicas manejan funciones analiticas, es decir, la matematica puede manejar cosas como x=sen(x) y calcularlo en forma exacta sin tener en cuenta tamaños de numeros, 0's o infinitos.

En cambio las PC's tiene una limitación (que no tiene nada que ver con el tiempo) : no pueden manejar numeros infinitamente grandes o infinitamente pequeños, no pueden guardar numeros tan simples como 1/3 el numero "e", o "pi".
Por ejemplo, el numero pi es exactamente
3,141592653589793238462643383279502884197169399375 105820974944592 3078164062862089986280348253421170679
y los decimales siguen eternamente. Una PC no puede guardar un numero con infinitos decimales, por lo que lo trunca. MAs o menos asi
3,1415926535897932384626433832795028, por lo que se pierde presición. Uno puede pensar "que me importa perder del decimal 50 en adelante, es un error muy chiquito", para demostrarles que estan equivocados pongo el siguiente ejemplo:
hagan esta cuenta en papel:
(1/10E50) * 10E50
10E50 es un 1 con 50 ceros detras, osea: 10000...., en matematica pura simplificamos la division y la multiplicacion y nos da el resultado 1.

Una computadora no sabe simplificar (no tiene cerebro y no le enseñaron matematica), por lo que primero hace 1/10E50, y como no puede guardar el resultado ya que es muy chiquito, da como resultado 0, y luego al multiplicarlo por 10E50, da como resultado 0. Vieron que poco importante que es ese decimal.

El problema de todo esto es que el procesador de una computadora solo sabe sumar, cambiar de signo un numero y saltar a otra instruccion cuando se cumple una condicion. Por lo que esta muy lejos de tener un cerebvro que comprenda la matematica.

Si quiere ver otra enorme limitacion de las computadoras, abran la calculadora de windows ( o speed crunch :) ), y traten de hacer el siguiente calculo: (-1) elevado a 0.2, y se van a dar una sorpresa, el resultado real de ese calculo es -1.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux