I don�t know nowt about mathematics, but surly the smallest number above 0 cannot exist because a number smaller then it can exist. You did know that ,right? [ April 02, 2005: Message edited by: Gerald Davis ]

The number 0.99999..., where the 9 repeats AN INFINITE numbe of times, is exactly equal to 1. There is no difference between the two.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

Gerald Davis
Ranch Hand

Joined: May 15, 2002
Posts: 872

posted

0

I still don�t believe it. Maybe it is true based on the confines of a computer or maybe based on the confines of the universe but logically it can never be true. Do you have any web links to support this?

Gerald, can you refute either of the proofs presented? Neither of them require the confines of computers or the confines of the (physical?) universe.

Gerald Davis
Ranch Hand

Joined: May 15, 2002
Posts: 872

posted

0

My understanding about infinity( the stuff I told me opposed to what I read) is there must be viable level of infinity. If an entity of variable value equaled 1 then 1 would then have a variable value, which it cannot because it is 1.

I wonder if infinity includes that which is finite.

Anyway. I cannot dispute that 99999� equal 1 but I will give you my 100% (not 0.999) certified guarantee that I am correct.

Isin't this the basis of the Limit Theory, as was previously pointed out. So, theoretically speaking (I believe) it does exist. But since it doesn't find any practical significance (unless Paul has found some use) I guess the 'difference' is debatable - as hence we all post our thoughts.

aleph0 is actually a very large number, an infinite number, in fact: it's the total number of integers plus the total number of rational numbers.

Nick George
Ranch Hand

Joined: Apr 04, 2004
Posts: 815

posted

0

plus the number of natural numbers, plus the number of prime numbers, plus half the number of odd numbers. [ April 04, 2005: Message edited by: Nick George ]

Gerald Davis
Ranch Hand

Joined: May 15, 2002
Posts: 872

posted

0

Originally posted by Nick George: That's quite a guarantee

You bet it is baby; there are many things that do not get that guarantee.

1.Like which political party is good for country. Corrupt governments might be good for the county; the reason for it being is just outside the scope of my understanding. 2.Although all religions basses of truth is erroneous 100%, but whether they are good for civilization, I will never be hundred percent sure of. 3.I could not give the hundred percent guarantees to my girlfriend that I would not fornicate with anybody else. Nobody can guarantee what is going to happen in future, there is a small chance that I might be taken by force by a powerful insane woman. 4.I couldn�t have guaranteed that Object Oriented Methodology is good for most projects because you would need a website to prove 100% that this link is wrong. http://www.geocities.com/tablizer/oopbad.htm 5. There was time at college when I was doing Foundation Degree (poor mans bachelors) I was helping the other students with Java. The other students always come to me for help and I always gave it; to them I was the dog�s nuts.

Some of them said, I would to best in exams hands down guaranteed but I said the process of examination could be different from the actual coding.

And I was right , some of the questions was in a mathematical context but I cannot do mathematics, some questions was guessing the product of a nested loop; because of my bad short turn memory, I was lost completely; my usual answer is to refactor the nested loop into separate methods. Most the questions required the student to be the computer compiler. This is very difficult for someone who uses trial an error to get results. I did pass but my exam results were complete pants I tell thee. [ April 04, 2005: Message edited by: Gerald Davis ]

[PW]: Is there a name for the number that is the difference between 1 and 0.9999999 repetend the 9?

I think the best name for this is "zero". Alternately you might try something like "the limit of x as x tends to zero". Which is zero, of course - but at least it tries to suggest the possibility of some other answer.

[EFH]: Well, I believe that usually mathematicians call this number "Epsilon"

I think epsilon is a somewhat different concept. It's a number small enough that we don't care about (or have no means to detect or represent) any numbers closer to zero. However epsilon is generally still distinct from zero.

[DOM]: Yup, .999999etc etc is actually one. Except maybe in binary.

Not just binary - .9999... is only equal to one in decimal. For bases lower than 10, it's nonsense; for bases higher than 10, it's well-defined but not equal to one.

[Gerald]: there is a small chance that I might be taken by force by a powerful insane woman.

It's not all that improbable. I suspect that any woman who gets involved with you has a higher-than-usual chance of being insane. Then again, that's probably also true for any woman who gets involved with me, as well...

Going back to the main topic, Gerald, your 100% guarantee is 100% wrong. If you want to link this claim to your ideas about OO programming, that's your business. You've already admitted you don't know much about mathematics...

[JY] Not just binary - .9999... is only equal to one in decimal. For bases lower than 10, it's nonsense; for bases higher than 10, it's well-defined but not equal to one. I was actually trying to to refer to the compatibility issues in representing base-10 floating point numbers in base-2. I'd write something to test how close you can get to 1 using .9999999 in binary form but I'm still playing with spiders and flys (programming diversions reference )

[FR]4) Nick's proof above 5) David's proof... Actually Dave's is the generic solution, Nicks is specific. If parameterise Nick's you get mine...

[GD] I still don�t believe it. Maybe it is true based on the confines of a computer or maybe based on the confines of the universe but logically it can never be true. Do you have any web links to support this?

Actually maybe I can, as a famous thought experiment known as Xeno's Paradox. Xeno is just this guy, you know?

He argued that an arrow can never reach its target, since it first has to travel half the distance. It then has to travel half the remaining distance, then half the remaining distance again and again and again. An infinite amount of halves, to be precise. You can't have anything less than 'infinity steps' because the arrow wouldn't reach it's target. I don't believe he offered to prove this by standing in front of an archer. Going back to the original equation, a=0.5, r=0.5, therefore S=1 and the arrow reaches the target. Don't try to disprove this at home.

Originally posted by Gerald Davis: I still don�t believe it. Maybe it is true based on the confines of a computer or maybe based on the confines of the universe but logically it can never be true.

By what logic? People have offered a number of proofs supporting .999... = 1. Can you provide anything to prove otherwise?

You have put forth an asertion ("...it can never be true."); do you have anything to support it?

Now it may just be that it is totally non-intuitive to you, i.e. you just don't get it. But letting go of intuitive positions that have been proven incorrect is, in my opinion, a mark of a true intellectual strength. Einstein and relativity is a great example of this. (If you're driving a car at (3/4)c and turn on the headlights, what happens?)

Do you have any web links to support this?

All it would take is a web link to convince you?!?!? I can satisfy that request in short order.

Originally posted by Gerald Davis: May I be so bold considering I don�t know math but .999999( if it means 0.999999) cannot possibly be 1.

I don�t now what your Java compiler comes up with but with Lisp its

1.999998

That works for .999999 which is .99999900000...

Now tell me what happens if you do .999999... + .999999...

In order for you to end in an 8 as you do above you have to come to a place where there is a 0, but that place does not exist. Within the constraints of a computer it will be different because there is an end, but in mathmatics .999999... = 1

Jim Yingst
Wanderer
Sheriff

Joined: Jan 30, 2000
Posts: 18671

posted

0

Gerald: Paul's original post referred to "0.9999999 repetend the 9". I think everyone here is assuming that he meant to say repeating rather than repetend, and that he meant to imply the 9 was repeated an infinite number of times, rather than some finite number of times. If you stop the repetition at some finite point, then the result is not 1. But if you repeat it unto infinity, then .99999999... is indeed 1.

The definitive answer to the question is that there is no smallest number greater than zero unless you define the limits of the question. Saying that we must continue repeat the 9 of 0.99 infinitely is only theoretical and absurd. The mythical number "infinity" does not and has never existed it is nought but an invention of human beings who cannot imagine the confines of the universe. Questions such as "What's on the other side, then?" spring to mind, which are of course difficult to answer. But none more so than this one "What is infinity minus 1?". There is no answer to such a question because the number infinity simple does not exist.

I'll try and make it easy to understand. If I have five oranges and I divide them among 5 people each person gets 1. If I divide them among 2 people each person gets 2 and 1 is left over. Optionally of course they could break the remainder in half but that's beside the point. If I divide the 5 oranges between 0 people the 5 oranges remain 5 oranges. They are not divided into an infinite number of infinitely small pieces and shared out to nobody. Hence, scientifically 5/0 = 0 remainder 5 not infinity remainder 0.

This brings us on to one of the most crucial mistakes to have been made in computer science. It was wrong to hard code errors for division by 0 into hardware as the normal function would have worked fine 5/0 = 0 remainder 5 and likewise 5%0 = 5. It was even more of a mistake to create an exception devoted to this operation, which is normal in real life and happens every day, into java. When we leave a loaf of bread in the breadbin we recursively dividing it by 0 but reality as we know it does not meltdown and the virtual machine of our existence does not refuse to continue because the bread isn't being shared out. Division by 0 is one of the most fundamental concepts which upholds our very existence. Our bodies are continually divided by 0 until our death and subsequent decomposure. It i the reality that dividing by 0 = 0 remainder (still in tact) that holds the fabric of our precious universe together.

Thus in conclusion the answer to the original question is this:

Q What is the smallest number greater than 0?

A

if (you are willing to answer this question) {

int limit = //what is your limit? double answer = //1.0 - 0.99(repeated "limit" times

} else {

double answer = 0.0;//as there is no smallest greater number

}

I hope that clears it up for you all.

James

Gerald Davis
Ranch Hand

Joined: May 15, 2002
Posts: 872

posted

0

Originally posted by David O'Meara: He argued that an arrow can never reach its target, since it first has to travel half the distance. It then has to travel half the remaining distance, then half the remaining distance again and again and again. An infinite amount of halves, to be precise.

I figure that if the universe is finite and if instead of having planet, stars, suns and stuff in it, it was used as a computer memory, using single atoms bytes. You will sure to run out of memory before you reach 1.

Maybe the arrow example you speak of, simulated in a computer would require the need to convert a floating-point calculation to an integer so it can be printed out to screen. The application would have a finite value because of those integer pixels. The real world also has these pixels called atoms, assuming atoms are smallest atomic entity in the universe, I don�t know because I don�t know physics. So because of the finite-ness of the scale of minuteness of the universe limited by atoms the arrow will always hit its target.

James Christian
Ranch Hand

Joined: Apr 04, 2005
Posts: 63

posted

0

Ok all. Listen up and listen up good because the only thing that doesn't seem to be hitting the target is when intellectuals try implementing common sense.

Take an arrow and fire it 10 times. If that's not enough try it 100 or even a 1000 or even an infamous "infinte" number of times, or just as long as it takes to finally understand the simplicity of it all.

The arrow always hits a target; it may not be the one you were aiming for but it is usually the one it was aiming for. The distance between the firer and the target decreases at an almost constant rate until the arrow a) hits the target or b) slows down. It does halve its speed in a dare I use the term ,infinite loop.

Observe the following. int i = 0; while (true) { i++; }

It's an infinite loop, right? WRONG it keeps going until it is interupted, (powerdown, run out of memory) but even in the theoretical scenario that int has an unlimited number of values at any point in time i has a value which is most certainly, positively, indisputably FINITE.

Steven Bell
Ranch Hand

Joined: Dec 29, 2004
Posts: 1071

posted

0

Originally posted by Gerald Davis: The real world also has these pixels called atoms, assuming atoms are smallest atomic entity in the universe, I don�t know because I don�t know physics. So because of the finite-ness of the scale of minuteness of the universe limited by atoms the arrow will always hit its target.

Well, there are particles significantly smaller than atoms, but your basic point has some merit.

Today it is generally understood that matter has a discrete structure (there is a smallest piece). The same holds true for light/energy. It is becoming an understood, if not completely accepted, theory that space-time is also built of descrete structures (some reference here). Accepted theory puts the size of the smallest space-time unit at about 10^(-35)m. If we assume this is true for the moment, does that make the theoretical math stuff a pointless argument? Even if we can prove that .999999... = 1, if we can actually say there is no .999999... does that fundamentally change the argument?

Nick George
Ranch Hand

Joined: Apr 04, 2004
Posts: 815

posted

0

Err... James, I agree that any integer is not infinity. What's your point?

[SB]Even if we can prove that .999999... = 1, if we can actually say there is no .999999... does that fundamentally change the argument?

No.

We're talking about pure, Peano-axiomatic math. Until you can prove that these foundations preclude .999(9), I contend that it exists. [ April 04, 2005: Message edited by: Nick George ]

Jim Yingst
Wanderer
Sheriff

Joined: Jan 30, 2000
Posts: 18671

posted

0

Err... James, I agree that any integer is not infinity. What's your point

Talking down to everyone and acting like a pompous @$$, it appears.

James, if you can't enter into a discussion without treating everyone else like ignorant children, this may not be the best forum for you. Perhaps your time would be better spent trying to get 1/3 + 1/3 + 1/3 to add up to 1 using nonrepeating decimals. If you choose to continue to hang out here, we'd appreciate it if you tried to minimize the level of condescenscion in your posts. Cheers... [ April 04, 2005: Message edited by: Jim Yingst ]

i don't believe anyone said "Infinity is a Number". Infinity is a CONCEPT. i guess it would actually be concepts, since there are different sizes of infinity.

Further, you cannot divide by 0. it doesn't make sense. when you say "divide the 5 oranges between 0 people the 5 oranges remain 5 oranges" i would stop you at "0 people". you are not "dividing by 0" - you are not dividing.

Division is defined in terms of multiplication. they are inverse operations of each other - one "un-does" the other. Multiplication was defined first. and, in the definition of mulitplication, it was decided that "zero times ANY NUMBER (and remember inifinity is NOT a number) is zero."

so now we come along and define division. "A divided by B" means "give me the number C such that when i multiply B and C, i get A again." so, A divided by 0 means "give me the number that multiplied by 0 give me A". Unless A is zero, we have a problem. So, it was decided that you cannot divide a non-zero number by 0. And to prevent always having to take care of the 'special case' of A = 0, it was agreed that you would simple not be able to divide by 0 at all.

Your statement "scientifically 5/0 = 0 remainder 5, not infinity remainder 0" may or may not be true - i don't know 'science'. But Mathematically, it is a fundamentally flawed statement. it's like saying "The odd number 8, when divided by 2 gives a remainder". 8 is not odd, and you CANNOT do 5/0.

James Christian
Ranch Hand

Joined: Apr 04, 2005
Posts: 63

posted

0

Fred,

You say:"Further, you cannot divide by 0. it doesn't make sense. when you say "divide the 5 oranges between 0 people the 5 oranges remain 5 oranges" i would stop you at "0 people". you are not "dividing by 0" - you are not dividing."

Dividing by 0 is equivalent to not dividing; that's the whole point.

You go on to say:"Division is defined in terms of multiplication. they are inverse operations of each other - one "un-does" the other. Multiplication was defined first. and, in the definition of mulitplication, it was decided that "zero times ANY NUMBER (and remember inifinity is NOT a number) is zero." "

Actually the daddy of all operations is good old addition. The only maths that computers are capable of doing aside from logical operations. Multiplication is an extension of addition as 2*10 is simply 2 added to itself 10 times. The inverse of addition is subtraction which I sincerely hope I need not explain. Hence division is the extension of subtraction as 10/2 we simply count the number of times we take 2 from 10 before the remainder is 0 or less than 2 as for example in the operation 11/2 you can subtract 2 from 11 a total of 5 times before the result is 1, hence the result is 5 remainder 1. If we take 10 oranges and divide them by 0 the result is 0 subtractions with a remainder of 10 oranges. It's common sense you don't need to have a degree in imaginary numbers to understand the simplicity of it all.

Anyway my intention was not to convince the world in general that infinity does not exist it was merely to show that there is no smallest number greater than 0 and that even if we in our great wisdom decide to give a name to such a non-existent number it would only be non-sensical and serve no function whatsoever.

recurring 9's people, don't get side-tracked. or I'll "half shoot you with an arrow"

Steven Bell
Ranch Hand

Joined: Dec 29, 2004
Posts: 1071

posted

0

Originally posted by James Christian: Fred, Actually the daddy of all operations is good old addition. The only maths that computers are capable of doing aside from logical operations. Multiplication is an extension of addition as 2*10 is simply 2 added to itself 10 times. The inverse of addition is subtraction which I sincerely hope I need not explain. Hence division is the extension of subtraction as 10/2 we simply count the number of times we take 2 from 10 before the remainder is 0 or less than 2 as for example in the operation 11/2 you can subtract 2 from 11 a total of 5 times before the result is 1, hence the result is 5 remainder 1. If we take 10 oranges and divide them by 0 the result is 0 subtractions with a remainder of 10 oranges. It's common sense you don't need to have a degree in imaginary numbers to understand the simplicity of it all.

You contradict yourself here. 10/2 = 5 because you can take ten and subtract 2 from it 5 times to get 0.

Now lets try the same thing with 5/0

hmmm. We seem to have a problem here.

James Christian
Ranch Hand

Joined: Apr 04, 2005
Posts: 63

posted

0

Allow me to give an example to prove my point with the following method that keeps a count of daily surplus earnings and divides them among employees that have exceeded the normal quota of production.

int surplus = getYesterdaysSurplus + getTodaysSurplus(); int dividedBy = getBonusWorthyEmployees();

public void shareOutSurplus(int surplus, int dividedBy) {}

As can be seen the method shareOutSurplus accepts two parameters, surplus, which is the some of any surplus left over from yesterday and today's surplus, and dividedBy which supplies the number bonus worthy employees. The share out surplus method divides the total surplus by the number of bonus deserving employees. In an ideal and realistic world the code would be something like:

public void shareOutSurplus(int surplus, int dividedBy) {

int bonus = surplus/dividedBy; int remainder = surplus%dividedBy; }

This is a perfectly normal situation and happens in many circumstances and situations in the real world. If on any particular day no employees are deserving the bonus given out is 0 and the remaining surplus is equal to the original.

But in a world were everything is dictated by intellectuals who give more weight to unproven theoretical maths than common sense the code actually needs this:

if (surplus != 0)

because otherwise the JVM has a childish fit and throws a Runtime Exception because we have hard coded in one of the greatest fallicies to be widely accepted in computer science, you can't divide by 0.

Yes we can divide by 0 and we do it all the time in the real world so why add more overhead on the JVM to chech at Runtime for an exception which isn't really an exception at all, it's just a normal everyday operation that we all do all the time.

Men with families sometimes decide to divide the contents of their wallets by 0 of their children in the hope that the remainder will remain equal to the original amount. A strategy that has repeatedly failed of course.

I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com