La calcolatrice di Google sbaglia

2008-08-25 | Tags: ,

Certo, errare è umano. Ma da sviluppatore non mi spiego perché e come si può verificare un errore di questo tipo. O meglio, è spiegabile: sicuramente si tratta di un overflow della variabile che contiene i numeri che, convertiti in binario – per fare i calcoli – genera questa anomalia.

Non sto dando i numeri, mi spiego. Andando su Google e digitando un operazione matematica nell’area di ricerca, si attiva in automatico la calcolatrice. Infatti, cliccando su “Cerca” avremo nella prima riga il risultato dell’operazione e poi tutti i risultati della ricerca.

Ora, se proviamo a fare l’operazione “399999999999999-399999999999998” succede che da come risultato zero, invece di uno.

Certo, non conosco il funzionamento ne l’algoritmo che implementa il sistema di elaborazione dati. Ma suppongo si tratti di un congegno che la stringa digitata e, nel caso del nostro esempio, trova il primo termine ed il secondo e fa l’operazione.

Ora mi chiedo: se i termini sono due, non possono fare un controllo così che se sono uguali, non fa nemmeno l’operazione, ma da come risultato direttamente zero? In questo modo si risparmiano calcoli, conversioni da stringa a binario e quindi clock del processore del server!

Forse starò minimizzando troppo, magari ho sottovalutato la situazione, ma almeno ora non ne staremmo parlando!

  1. Sous
    26 agosto 2008 alle 14:29

    Wow
    avrai fatto un pò di tentativi per arrivare ad ottenere quell’ “errore”.

    Comunque, NON conoscendo l’algoritmo che ci sta dietro posso supporre che l’ “errore” sia dovuto alla ‘precisione’ adottata dall’implementazione della calcolatrice. Mi spiego meglio, magari le cifre “significative” per la calcolatrice di Google sono le prime 14 e le altre, anche se le copia (magari toglierla gli costerebbe in termini di clock del processore :) ) ) non le utilizza nel calcolo.

  2. 26 agosto 2008 alle 16:42

    Una calcolatrice che esegue anche i calcoli irrazionali (tipo la radice quadrata di -1), si ferma alle prime 14 cifre?

    Mi sembra abbastanza improbabile onestamente, ma tutto può essere!

    P.S.
    Non l’ho scoperto io il bug, c’è mezzo web tappezzato con questa cosa!

  3. 28 agosto 2008 alle 13:05

    Non c’è che dire, con le calcolatrici ci si fa spesso una pessima figura. Chi si ricorda degli errori della calcolatrice di Windows (qualche versione fa)?

  4. basdv
    22 settembre 2008 alle 19:22

    me ne puoi dire alcuni perfavore??? non sapevo di questa cosa…

  5. AdenoidRuby
    17 novembre 2008 alle 17:41

    ahahahah, forte, se per questo ha problemi anche con 8 cifre dopo la virgola:

    0.99999999 – 0.99999998 = 9.99999994 × 10^-9

  6. 1 trackbacks
    1. 2008-08-25 - diggita.it