2010-03-28 6 views
9

Lorsque vous effectuez une recherche dans Google "100F à C", comment sait-il convertir de Fahrenheit à Celsius? De même, la conversion de différentes devises et un calcul simple.Comment Google Calculator est-il implémenté?

Quelle est la structure de données utilisée ou est-ce un simple motif correspondant aux chaînes?

+1

avez-vous essayé des choses à wolfram alpha? Il a une base de données pour beaucoup de choses et vous pouvez poser presque n'importe quelle question (qui renvoie le nombre exact ou similaire). Il montre aussi comment il analyse votre question. http://www.wolframalpha.com/input/?i=night+fall+in+Piran –

+0

D'accord avec ralu - WolframAlpha utilise une quantité de traitement du langage naturel, ce qui est beaucoup plus intéressant et couvre une plus grande variété de cas (essayez en lui demandant la population de Findland, par exemple). – new123456

Répondre

1

Ce n'est pas exactement simples pattern matching. L'évaluation des expressions mathématiques que vous pouvez entrer n'est pas triviale. Par exemple, here's un algorithme qui évalue une expression mathématique. C'est juste l'évaluation, il y a probablement beaucoup de code à détecter si c'est même valide.

Pour la conversion de devises et d'autres unités, c'est une simple correspondance de modèle.

0

il est simple motif correspondant

essayer
100 kmh en mph = pas de calcul
100 km en mph = 62,1371192 mph

+0

"100 km/h en mph" fonctionne bien: km/h est l'abréviation correcte – gbn

+2

Je suis presque sûr à 100% que pour les expressions mathématiques (par exemple 100 * (6 +3)), ils utilisent un analyseur comme ils sont non ordinaire. –

+1

@DrJokepu: d'accord, mais il y a le problème plus difficile de reconnaître qu'il s'agit d'une expression appropriée pour l'envoi à la calculatrice avant de la traiter comme une chaîne de recherche. Je suppose qu'il y a une pile d'expressions rationnelles et heuristiques pour cette détermination. – msw