Posted on 12/08/2006 12:20:06 PM PST by LibWhacker
Schoolchildren from Caversham have become the first to learn a brand new theory that dividing by zero is possible using a new number - 'nullity'. But the suggestion has left many mathematicians cold.
Dr James Anderson, from the University of Reading's computer science department, says his new theorem solves an extremely important problem - the problem of nothing.
"Imagine you're landing on an aeroplane and the automatic pilot's working," he suggests. "If it divides by zero and the computer stops working - you're in big trouble. If your heart pacemaker divides by zero, you're dead."
Computers simply cannot divide by zero. Try it on your calculator and you'll get an error message.
But Dr Anderson has come up with a theory that proposes a new number - 'nullity' - which sits outside the conventional number line (stretching from negative infinity, through zero, to positive infinity).
'Quite cool'
The theory of nullity is set to make all kinds of sums possible that, previously, scientists and computers couldn't work around.
"We've just solved a problem that hasn't been solved for twelve hundred years - and it's that easy," proclaims Dr Anderson having demonstrated his solution on a whiteboard at Highdown School, in Emmer Green.
"It was confusing at first, but I think I've got it. Just about," said one pupil.
"We're the first schoolkids to be able to do it - that's quite cool," added another.
Despite being a problem tackled by the famous mathematicians Newton and Pythagoras without success, it seems the Year 10 children at Highdown now know their nullity.
No, it's the result you get when people work with real numbers in computers instead of theory on a chalk board. Try computing the cos of Latitude when you're on the equator. That's a very real problem, and if you forget to handle the exception and someone flies your autopilot across the equator and the GPS hits it just right, someone could die.
It'd be much better if the hardware just delt with it, and by naming this thing he justifies changing the hardware.
So if words to mean things, why does infinity need another name? Infinity isn't good enough - we have to call it nullity now?
The largest value possible for the variable type you're using. It will not be an exact value, but there are quite a few irrational numbers in this business, and "close enough" is the norm.
That doesn't help you any. See post #127 for an explanation. Besides, if that's what you want to do, why do you need the concept of nullity? All you really need is a compiler that will return MAX_INT when you divide by zero. You can do that yourself with exception handling or precondition checking. Nullity doesn't bring anything new to the table.
One problem was that every designer of a computer or computer language tended to "roll their own," resulting in calculations and variable transfers that were inconsistent across computers, and which sometimes had hidden flaws in their algorithms, as well.
[Recall that an early Pentium had a flaw in one of its trig/floating point instructions, and had to be recalled.]
Twenty years ago or so, computer/software engineers and applied mathemeticians began work to standardize floating-point representations and algorithm across all platforms, under the aegis of the Institute of Electrical and Electronics Engineers.
They devised special representations which would stand for unrepresentable quantities such as "infinity" and "Not-A-Number," (NAN), typically the result of a division by zero.
If you were doing a chain of calculations and somewhere along the chain the quantity would become unrepresentable, it would come out as NAN, which would be propagated throughout the remainder of your calculation.
Anybody using a standard IEEE-754 properly will get both exception conditions which can interrupt his normal processing flow, and NANs or infinities as values, both of which can keep the program from doing stupid or destructive things.
If the programmer knows what they're doing! < }B^)
Depends on the language and the types of variables used. For true integer division in the "C" family of languages, 2 divided by 3 is 0, with a modulus of 2. Using floating-point math, 2 divided by 3 is 0.6666... (to whatever resoltion the storage variable keeps).
Umm, the logarithm of the divisor, zero, is also an undefined number.
I have only one question for this guy.
5 divide by nullity is what?
Yeah, whatchoo said.
< }B^)
This will be useful about the time I retire when Social Security goes bankrupt. Amazing!
To get a woman it takes Time and Money:
Women = Time x Money
And Time is Money and Money is Time
So: Women = Money x Money = Money^2
And Money is the root of all Evil
Money = SQRT(Evil)
So: Women = (SQRT(Evil))2
Or
Women = Evil (mathematically proven)
Since (SQRT(x)) is a real value only only when x>0, Women=Evil only when you have real money. When you don't, women are imaginary.
No, in a computer program you will get an integer result. If you are assigning the result of (2/3) to an integer, you will get an integer result of 0.
To give an excuse for the computer hardware people to change how it works.
Besides, if that's what you want to do, why do you need the concept of nullity? All you really need is a compiler that will return MAX_INT when you divide by zero.
MAX_INT? Not a very big number to represent infinity.
If it was the compiler that was doing the testing, then I might as well put the code in myself. I'm trying to avoid machine cycles by getting this kind of thing into hardware.
2 divided by 3 does not yield an integer.
No, in a computer program you will get an integer result.
I don't understand. Are you talking about a program that rounds to the nearest integer? Most computer programs that I know (computers, calculators) will not yield an integer when dividing 2 by 3.
I suspect I'm missing something here. What is it?
As I've said, exception handling is normally sufficient.
So since there are so many ways of dealing with the divide by zero problem in a computer program, the concept of "nullity" isn't really useful to programmers, right?
Would help with spreadsheets. Instead of getting an ERR (e.g., percent growth from zero), a simple symbol would look nicer.
Other than that, for other real-world applications, I maintain that reasonable approximations are sufficient, such as from a cost/benefit standpoint.
Or how about this one:
But in your previous post you said "The largest value possible for the variable type you're using." That's what MAX_INT is for integer types!
I'm trying to avoid machine cycles by getting this kind of thing into hardware.
I'm don't see how the concept of "nullity" does that.
That said, maybe someone can explain this to me. If zero indicates nothing, and you divide something by nothing, how are you dividing it at all? Aren't you simply left with "something"?
I understand about multiplying by zero because, you get the same product regardless of the order of the numbers (AxB = BxA).
What can I say, I'm the product of public schools.
And, I'm old. 8-)
Regards
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.