Hacker News new | past | comments | ask | show | jobs | submit login
0 degrees celsius + 0 degrees celsius - (google.com)
170 points by iamelgringo on Aug 17, 2010 | hide | past | favorite | 74 comments



It looks like it must be using kelvin as its canonical units:

  0C + 0C = 273.15 K + 273.15 K = 546.3 K = 273.15 C
The weirdness is that conversions like that don't work for units that have different zero points. Perhaps addition of temperatures isn't really well defined? If 273.15 K + 273.15 K does not equal 0 C + 0 C, despite 273.15 K = 0 C, it's not clear what addition "means" in this context.

One restricted form of addition that makes sense (which maybe is what's intended?) is to consider the 1st temperature an actual temperature, and the 2nd temperature a temperature difference in units of degrees-C (or degrees-K, or degrees-F). So e.g.:

  "5 C warmer than 30 C"
  = 30 C + 5 C
  = 303.15 K + 5 K
  = 308.15 K
  = 35 C
But then addition isn't commutative. The problem is that "degrees C" is overloaded here, to mean both a position on a scale, and the size of a unit on that scale, with no conventional short way of distinguishing which one you mean (which is one reason Kelvin was invented, since things aren't ambiguous if you put absolute zero at 0 K).


Google can actually differentiate between the two meanings: degrees Celsius and Celsius degrees.

As you explained, the query posed by the title is meaningless, but 0 degrees Celsius + 0 Celsius degrees is handled correctly: http://www.google.com/search?&q=0+degrees+celsius+%2B+0+...


0 celsius degrees + 0 celsius degrees = 0 kelvin: http://www.google.com/search?q=0+celsius+degrees+%2B+0+celsi...


Ah, that's pretty interesting. It makes sense when you read the two phrasings next to each other, but it does seem like a pretty subtle wording difference. I think in practice people tend to differentiate which one is meant by context more than by "degrees Celsius" versus "Celsius degrees" being used consistently.

Should Google should convert the query somehow? It seems like adding two temperatures in degrees Celsius is something that never really makes sense (or subtracting, multiplying, or dividing them), so faithfully executing it like they currently do is rarely what's intended.


Yes, they should just convert. Or be annoyingly pedantic:

  Did you mean: 0 degrees Celsius + 0 *Celsius degrees*
:)


They should convert the query because that’s exactly what people want to know when they type in those kinds of queries.


>> when they type in those kinds of queries

If I wanted to know 50 degrees Celsius + 35 Celsius degrees, I would probably omit the units and just ask for 50 + 35. I find it unlikely that many users actually run into this problem.


It’s no big deal, sure.


Ahh, yes. The "do what I mean" feature.


You're absolutely right that two different things are measured in degrees: temperatures and temperature differences. And they work as you said: you can add temperatures differences, you can add a temperature difference to a temperature, but you can't add two temperatures. (This is like pointers and ints in C.) Mathematically temperature differences form a group under addition and temperatures (idealized to have no minimum temperature) form a torsor for the group. A good introduction to torsors is John Baez's Torsors made easy: http://math.ucr.edu/home/baez/torsors.html


Well, you can add temperatures. Temperature is defined to be average kinetic energy of particles, and addition of kinetic energies is well defined. The way Google does the addition is in this sense correct - there's a reason it's called absolute zero.

The thing is that you usually don't want to add temperatures, for the same reason that you generally don't want to add other averages: they're usually not particularly interesting quantities. For this reason, you might encapsulate the definition of temperature and not expose the addition operation, but the dimensional analysis is fine the way Google does it.


Adding kinetic energies is well defined, but adding averages is not.


What the what? Averages over kinetic energies are summations. Adding them is well-defined and has a straightforward interpretation as the average energy per particle.

Formally, temperature is defined as

T = 1/(\partial(S)/\partial(E)) with fixed external parameters volume, particle count, etc.

where S is the entropy of the system and E is its total energy.

Playing fast and loose with words, as you pump energy into a system, if it becomes chaotic slowly, you're at high temperature. If it becomes chaotic quickly, you're at low temperature.

Much of the difficulty involved with calculating temperatures comes from the fact that we chose the inverse of that partial to be "temperature"--which means that you cannot add temperatures for most systems together and negative absolute temperatures are "hotter" than positive ones, (yes, Cindy, you can experimentally obtain systems below absolute 0 :)).

However, it is usually possible to calculate the thermal equilibrium of the system, which would be an excellent "average" temperature.


Seems it is easy enough to confuse even Wolfram Alpha

http://www.wolframalpha.com/input/?i=0+degrees+kelvin+%2B+0+...

Funnily enough the original query is handled well[1] by W|A:

http://www.wolframalpha.com/input/?i=0+degrees+celsius+%2B+0...

And the query that fails in Wolfram Alpha, works fine in Google's Calculator:

http://www.google.com/search?sourceid=chrome&ie=UTF-8... :)

1: By "well", we probably mean according to intuition


Actually, Wolfram Alpha is doing a sensible thing in each case: it is not adding the temperatures, it is comparing them, resp. calculating the difference, when you give different scales. You can see that in the output, where it says "difference".

The confusion is all on your side.


I'm not sure about the confusion... the question to W|A is not well-defined, but lets say someone asks you "2 + 4?" and you answer "the difference is 2". Does it make any sense? Not to me.


What if someone writes you the question "what is 12, Park Avenue + 34, Park Avenue?" Wouldn't you assume that this cannot be about addition, and instead tell him who lives in those two places and perhaps the walking distance?


The + operator is overloaded. You interpret it automatically as addition; the SE read it as "search (or: tell me about) 2 and 4."


That last one is odd. Should it not convert them first on the same base first? But then which on should it convert to? If you go for 0 celsius to 273.15 K then you'd get 0 K + 0 C = 273.15K if you do the other way you get -273.15 C. Whoa now I have a new tool to explain that AB is not always = BA to friend ;)


No, swapping them gives the same value.

http://www.google.com/search?hl=en&q=0+degrees+celsius+%...

Google always convert temperatures to Kelvin for this stuff.

http://www.google.com/search?hl=en&q=0+degrees+celsius++...

The assumption is if your doing math with temperature you are using it in a physics context.


A quick check of Wikipedia states: (http://en.wikipedia.org/wiki/Celsius)

  Why technical articles use a mix of kelvin and Celsius scales
In science (especially) and in engineering, the Celsius scale and the kelvin are often used simultaneously in the same article (e.g. "…its measured value was 0.01023 °C with an uncertainty of 70 µK…"). This practice is permissible because:

the degree Celsius is a special name for the kelvin for use in expressing Celsius temperatures, and

the magnitude of the degree Celsius is precisely equal to that of the kelvin

So based on that, it is permissible to do 0C == 273.15K.


The second result on Google for the search is now Hacker News. http://www.google.com/search?hl=en&client=firefox-a&...

I was curious about how this could happen so quickly, so I looked up the PageRank for ycombinator.com, and it's a 7 out of 10. That's a good amount of Google juice, which explains how they can so quickly rank on a keyword (and it's a very obscure keyword, so not much competition up-top).


> The problem is that "degrees C" is overloaded here, to mean both a position on a scale, and the size of a unit on that scale

I understood that Celsius always referred to the position on the scale, and the unit was always Kelvin. At least, that's how I use the terms.


>But then addition isn't commutative.

  "30 C warmer than 5 C"
  = 5 C + 30 C
  = 278.15 K + 30 K
  = 308.15 K
  = 35 C
Am I missing something?


Am I missing something?

Yes

= 5 C + 30 C = 278.15 K + 30 K

30 C != 30 K


Exactly. The same as the OP. I'm still not catching non-commutative qualities.


You just screwed me all up.

32 F + 32 F = 64 F

0 C + 0 C = 0 C

HOWEVER it should equal about 17.78 degrees Celsius. Now we 17.78/2 = 8.89 C = 282.04 kelvin. That is suspiciously close the to 0 C = 273.15 K- however it is also not that close. My whole understanding of temperature has been flip upside down.

Wait. This is why I am not an engineer. If we add a glass of liquid that is at 0C/32F/273K to another glass of liquid that is at 0C/32F/273K the temperature will still be 0C/32F/273K. A better way to measure this would be in energy/joules gained/lost- we would also need volume, properties, ect. In this case we are trying to lower 0C by adding 0C. Since the water is already at 0C then there is no energy needed. You about blew my mind; I've never thought of temperature as a number line.

http://www.physicsforums.com/archive/index.php/t-185960.html

http://mathforum.org/library/drmath/view/64505.html

http://www.essex1.com/people/speer/heat.html

My next project will definitely have to be a temperature/volume/energy converter


  10 °C = 50 °F (temperature)
  10 °C = 18 °F (temperature difference)
Celsius and Fahrenheit date to before temperature was understood to have a lower limit. Both measure only temperature difference from their respective zero points, with the conversion to energetic temperature demanding that one knows where the zero points are. The conversion is implicit in common use, so that

  10 °C + 10 °C = 273.15 K + 10 °C + 10 °C = 273.15 K + 20 °C = 20 °C
edit: changed substantially


And thus 32 °F = 16 °F, which, with conventional mathematics, can only be satisfied if °F = 0. Express this in English as "Fahrenheit is nothing", which is something that every European already knows. That's why we use Celsius :P


It's meaningless to add temperatures when the zero level is at +273.

It's like adding years relative to 2010 years ago - it would be meaningless to add this year - 2010 - with (say) 1666 - the year of the Great Fire of London. It's meaningful to take differences (the Great Fire happened 344 years ago), but not to add. (Unless we converted to some kind of absolute time units e.g. years since the big bang)

I'd say what it's doing - converting to an absolute scale then adding - makes sense.


It's meaningless to add temperatures in any circumstance. You can average temperatures, and you can add amounts of heat energy, but it is semantic garbage to try to add temperatures.

I'd say what it's doing--converting to an absolute scale then adding--is an interesting bug.


Yes, temperature addition is garbage, but the addition of an interval to a temperature is not. Consider:

    "It was 20 °C yesterday and someone told me it's 10 °C
     hotter today. What temperature is it?"
The difficulty comes when you try to write that out using addition. This is OK

    "10°C + 20°C"
because all of the units share the same null point so there is an implicit null point at 273.15 K.

This is not OK:

    "293.15 K + 10 °C"
because the null point could be either 0 K or 273.15 K.

If I were google I'd just show two answers in this case:

    "10 °C hotter than 293.15 K = 303.15 K
    "293.15 K hotter than 10 °C = 303.15 °C"


Doesn't averaging temperatures require addiion?


I started Deep Thought 2010 years ago. It consisted of two geographically distributed identical units, networked by means of ether. One I put in London, another in Mecca. The former was destroyed in the Great Fire of London, 344 years ago. How many years of processing has Deep Thought finished?

2010 + 1666.

In general, yes, it is pointless to add times. But I wouldn't call it meaningless.


In general, yes, it is pointless to add times. But I wouldn't call it meaningless.

For extremely large values of "in general." The only edge case where it appears to be meaningful is the one you pointed out, where one of your endpoints is the origin of the scale. If you had started Deep Thought at literally any other point in time, the addition would fail.


The addition wouldn't fail; it would just not be very useful. Interval scales do support addition, which comes in handy when you want to, say, calculate the center of mass for interesting events.

What would fail would be trying to determine the factor by which 2010 is later than 1666.


[deleted]


"three degrees hotter" is an interval of three degrees, and not an absolute value along a scale. So you'd take your original temperature and add an interval of 3 degrees to it.

0 degrees Celsius has a heat value (273.15 K). If you double it (i.e. add 0 degrees Celsius to it), you get 546.3 K -- which is 273.15 degrees Celsius.

What it really comes down to is that if you're going to perform math on temperatures for scientific reasons, use Kelvin. And if you're adjusting a temperature by an interval, leave out the units from the math completely.


You are right, I was wrong, but I think Google’s behavior is less than optimal. See my new comment.


Hm, well not really. It doesn’t give the answer the user wants to know. They should just convert the second degrees celsius to celsius degrees. (Ideally they should probably also add a ‘Did you mean …’-link with the alternative ála Wolfram Alpha.)


Looks right to me. Asking for 0 degrees celsius + 0 degrees celsius, or put another way, "what's twice as hot as freezing water?", is profoundly nonsensical, but 273.15 degrees celsius is the closest you can get to a sensible answer.


Ever tried to add two Unix Time values together? The results may look weird, but make sense if you know what you're actually adding.

Same here.


The question is meaningless but google answers it in the best possible way


Arguably it oughtn't to answer it at all.

It's a bit like asking "Where do I end up if I start at Alpha Centurai and go one light year east?".


I'd appreciate it more that it wouldn't answer it at all. Giving stupid answers to stupid questions is even stupider than asking the stupid question in the first place.




It sure looks really bizzare, but here it is broken down...

    "0 degrees celsius in kelvin"
      -> 0 degrees Celsius = 273.15 kelvin
    "273.15 kelvin + 273.15 kelvin in degrees Celsius"
      -> (273.15 kelvin) + (273.15 kelvin) = 273.15 degrees Celsius
Hence:

    "0 degrees celsius + 0 degrees celsius"
      -> (0 degrees Celsius) + (0 degrees Celsius) = 273.15 degrees Celsius


Moral of the story: Google is a bunch of cheeky bastards.

It took me a while to understand the reasoning behind that as points on a scale versus actual temperature values ("Celsius degrees" versus "degrees Celsius," respectively).

Googling "0 Celsius degrees + 0 Celsius degrees" returns 0 Kelvin, which would be expected given the technicality in wording.


Whether "degrees Celsius" refers to a point on the Celsius scale or an interval is ambiguous and is usually determined by context. Although attempts at conventions have existed the effect of typing rather than writing was not considered when they were created and so those conventions are largely ignored. In this case there is no context so google uses "degrees celsius" and "celsius degrees" to distinguish between a scale point and an interval which is a nice natural language solution in my opinion.

To better see what is happening try:

  0 degrees celsius + 10 celsius degrees
  0 degrees celsius + 10 degrees celsius
  0 celsius degrees + 10 celsius degrees



Not really. Google's answer is correct, in as much as it can be without mentioning the materials involved.


If you take the absolute temperatures of 0 C in actual heat and add them together, you would have a cumulative heat of 273.15 C. Makes perfect sense.




Seems like arthmatic with temperatures is just broken. This querey: "5 degrees c + 1 degree f in fahrenheit" yields: "501.67 degrees Fahrenheit"


Yeah, "It is twice as hot today as it was yesterday."


As a rant, it annoys me to no end that C is the SI unit for Coulomb, yet everyone uses C as Celcius. Someone should fix that.


Well, afaik, people use ºC and not just C.


I didn't get correct answers for any of the "temperature math" problems I gave it. Something's screwy on the back end.


Well, shoot, with enough ice cubes we can reverse global warming.


Temperature is an intensive quantity, not an extensive quantity.


what you expect is to add 0 temperature difference to 0 temperature value. What it actually calculate - sum of two temperature values. it's matter of notation imho


Nice finding, now try to tell them


Is this a bug or a joke?


It looks more like a bug. That, or it's a not funny joke.


In terms of thermodynamics, it's correct. What makes you think it's a bug or a joke?



Stunning and just a little bit sad that something like this hits #2 (almost surely #1 soon).


How about upmodding some of the competing links from the top page or, better yet, http://news.ycombinator.com/newest ?


Digging a little deeper...

  (0 degrees Celsius) + (0 degrees Celsius) - (0 degrees Celsius) = 0 degrees Celsius

  (0 degrees Celsius) - (0 degrees Celsius) = 0 kelvin

  (0 degrees Celsius) + (0 kelvin) = 0 degrees Celsius
The last 2 of the 3 are wrong, so I'd say this is definitley a bug.

EDIT: I think I figured it out. It's converting everything after the first temperature to Kelvin, without converting the first temp to Kelvin, and then just doing the arithmetic on the numbers...

  0C + 0C => 0C + 273K => 0 + 273 = 273

  0C + 0C - 0C => 0 + 273 - 273 = 0

  0C - 0C => 0 - 273 = -273 = 0K (ok, weird this one then converts back to K)

  0C + 0K => 0 + 0 = 0
EDIT 2: While this does match the results seen by google, I think _delirium's solution is more likely the reason.


0C - 0C => 0 - 273 = -273 = 0K (ok, weird this one then converts back to K)

Your math/logic is wrong, (A - A) => (B - A) you converted 0C to both 0 and 273.

Convert everything to Kelvin and it all makes sense. It's non-intuitive because 0C indicates a positive amount of energy rather than no energy as 0K does.


If you read my comment leading up to that, you'd see why I did it that way. But I agree with the other comment that it's more likely Google is just converting everything to Kelvin as it's canonical calculating form.


Yup you guys are right. This is what I get for trying to overanalyze a problem at 3am.


No.

It's converting EVERYTHING to K, then doing the arithmetic, then converting the result to C.

0C + 0C = 273K + 273K = 546K = 273C

0C + 0C - 0C = 273K + 273K - 273K = 273K = 0C

0C - 0C => 273K - 273K = 0K

0C + 0K = 273K + 0K = 273K = 0C




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: