Google calcula … mal

Una de las prestaciones de Google es la calculadora: en un campo de búsqueda podemos introducir un cálculo matemático más o menos complejo y lo resolverá. Sin embargo, los resultados pueden no ser «reales».

Y si no, podemos atenernos a esta sencilla operación que da un error un tanto extraño … se ve que le van mal las restas.

Google calculando

19 Comments

  1. Anónimo

    Aunque parezca una tontería… Ese cálculo puede salir mal en muchas calculadoras basadas en funciones «normales» de cualquier lenguaje de programación, porque 0.1 decimal, representado en binario, es un número periódico con un periodo bastante largo, de modo que es imposible representarlo con precisión…

    Podéis hacer la prueba con python, por ejemplo:

    echo "print 1 - 0.9 - 0.1" | python

    O con Ruby:

    echo "puts 1 - 0.9 - 0.1" | ruby

    En cambio, el programa bc está pensado para precisión arbitraria:

    echo "1 - 0.9 - 0.1" | bc

    De todas formas, 2.77e-17 son 28 partes en un trillón…

  2. Anónimo

    Si lo hiciéramos en C, el error no se produciría si utilizáramos simple precisión (32 bits), pero sí si utilizásemos doble precisión (64 bits).

  3. Anónimo

    Ítem más: el límite de precisión en cálculos de 64 bits (lo que se suele llamar épsilon, ε, es de 222 partes en un trillón, de modo que el resultado, en realidad, es 0, porque es menor que la precisión del cálculo.

  4. Anónimo

    El ejemplo para Python también sirve para Perl, cambiando python por perl —quién lo hubiera dicho ;-)—.

  5. Anónimo

    eso es porque el problema esta mal condicionado,
    habria que ver la posicion relativa de las rectas
    y=1 , 0.9x+0.1y=1 y las que coje la maquina cometiendo
    ese pequeño error de precision, y veremos como la solucion
    de la ecuacion se desplaza un huevo,
    no es un error del lenguaje de programacion,
    es un error de precision de la maquina y del ingeniero
    que hace el programa, claro que el que mas culpa
    tiene es el ingeniero, que no tiene ni puta idea
    de algebra lineal y numerica.

  6. Anónimo

    Es como el excel, si le pones cos(radianes(90) da 6,12574E-17 en vez de 0. Y ocurre esto en todas las versiones del excel que he probado.
    El origen es debido a un error de redondeo del programa, aunque si fuera asó tendría que ocurror lo mismo con el seno de 0, cosa que no pasa.Lo gracioso es quie en openoffice y demás hacen bien este simple cálculo.

  7. Anónimo

    Otro detalle curioso, poned:
    answer to life, the universe and everything

    Tambien hace saltar la calculadora de google (si alguien no sabe que significa, guia del autoestopista galactico).

  8. Anónimo

    Shin, no tiene nada que ver.

    El resultado anterior es un resultado predecible y «correcto» en binario —y como ya he comentado, por debajo de la precisión disponible, y reproducible en diferentes lenguajes de programación… en nuestra propia máquina—. El problema de los Pentium era un fallo que daba un resultado binario incorrecto… y por supuesto, un resultado decimal incorrecto, muy por encima de la precisión de la máquina.

  9. Anónimo

    Yo creo que el el problema del cálculo es que claro, usan el sistema anglosajón y no el sistema métrico… si todos estos programas y calculadoras usasen la coma como decimal, vamos, seguro seguro que saldrían mejor las cuentas, jajajajaja…

    Lo siento, no he podido evitar sacar de nuevo mi vena defensora del sistema métrico, que sin darnos cuenta lo estamos perdiendo. La mayoría de los hispano-hablantes cuando leemos «1.25» pensamos «uno coma veinticinco»… ¿entonces por qué lo escribimos sin darnos cuenta con el punto?

  10. Anónimo

    Amfortas, tienes razón… pero los trozos de código que he puesto no funcionan si pones la coma como separador decimal… marditoz angrozajonez…

  11. Anónimo

    Me recuerda mi primera clase de Métodos Numéricos en la universidad, donde me enseñó el profesor tantos ejemplos en los que el Ingeniero involuntariamente introduce mala información y la computadora entrega resultados no deseados.

    Por otra parte, sé que España es el único país hispano-parlante en el que se utilizan comas flotantes en vez de puntos flotantes.

  12. Anónimo

    España de único país hispano-parlente que usa la coma NADA. Digamos que la cosa está dividida al 50%, o más bien 60% que usan la coma y 40% que usan el punto.
    En América cuanto más nos acercamos a los Estados Unidos, más países usan el punto como decimal y cuanto más tiramos hacia el sur más usan la coma. Se podría decir que centro-américa usan más el punto y sur-américa más la coma.
    En Europa la inmensa mayoría usa la coma como decimal y con respecto al resto del mundo ya depende de la influencias que tubieron esos países por parte de otros. Japón por ejemplo casi todo su sistema de medidas lo han cogido de los EE.UU, mientras que buena parte de África y Asia el sistema lo han cogido de los franceses, belgas, portugueses y de los ingleses.
    Como normativa a nivel internacional, para trabajos, proyectos, etc… que se presentan a la comunidad internacional, se han de hacer en el Sistema Internacional de Unidades y que es básicamente el sistema métrico con algunas variaciones.
    Pero claro, en la informática e internet queramos o no, la influencia de los anglosajones en mayor y sin darnos cuentas estamos usando cada vez más su sistema de medidas sin darnos cuenta que, personalmente creo, que el nuestro es mejor y como digo, algo más mayoritario.