Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

At the end of the day it's about practicality.

Contrast 0^0 with 0/0. Both of them are considered undefined, but the former is often defined "locally", e.g in a given textbook or article to have the value 1. That's not true for 0/0 because it's not been found to be useful.



Indeed, 0^0 is often defined to be 1 in combinatorics textbooks, for instance, because in those contexts that's a useful/meaningful choice.

In measure theory it's often useful to augment your reals with positive/negative infinity. In projective geometry it's sometimes meaningful to allow division by zero (to counter one detail of your comment). In nonstandard analysis you would consider infinitesmals to be valid numbers, and in game theory you might consider stuff like the surreals which are yet another to view the familiar numbers, with different laws.

You can say we're talking about many different systems here, and that's true in a formal sense. I'm just pointing out that these formal systems come from somewhere, and mathematics is really about the thought-stuff underlying them. You should be willing to bend a rule here and there if it is truer to the concepts you care about - statements like "division by zero is undefined" should never be taken as absolutes.

(but of course this is just my personal philosophy of mathematics, take it with a pinch of salt)


There definitely are contexts in which it makes sense to define 0/0 = 0. Example: given a vector x and an approximation y to it, you wish to compute the "componentwise error" delta, i.e., the minimum positive number delta such that each entry of y is within relative error at most delta from the corresponding entry of x:

(1) abs(y_i - x_i) <= delta * abs(x_i) for each i.

This number can be computed as

(2) delta = max (abs(y_i - x_i) / abs(x_i)) over each i.

If you wish to allow zero entries in your vectors while keeping the equivalence between (1) and (2), you have to define 0 / 0 = 0.




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

Search: