On Thu, 14 Oct 2010 00:27:39 +0200
"Felix H. Dahlke" <f...@ubercode.de> wrote:

> On 13/10/10 22:28, David Sletten wrote:
> > 
> > On Oct 12, 2010, at 5:44 PM, Brian Hurt wrote:
> > 
> >>   For example, in base 10, 1/3 * 3 = 0.99999...  
> > 
> > It may seem counterintuitive, but that statement is perfectly true.
> > 1 = 0.9999...
> > 
> > That's a good test of how well you understand infinity.
> 
> I'm clearly not a mathematician, but doesn't 0.99999... asymptotically
> approach 1, i.e. never reaching it? How is that the same as 1?

This representation implies the sum of the series (iterate #(/ % 10)
9/10), and that sum behaves as you say. However, since the series is
infinite, you can prove that the number it represents is actually
equal to one, like so:

1) a = 0.999...                         # define a as 0.999...
2) 10a = 9.999...                       # multiply both sides by 10
3) 10a - a = 9.999... - 0.999...        # subtract equation 1 from equation 2
4) 9a = 9                               # simplify
5) a = 1                                # divide both sides by 9.

The subtraction step doesn't work unless the sequence is infinite, if
a is any finite sequence of 9s, you'll get a number whose decimal
representation is matches the re 8\.(9)*1. This relies on the property
that adding 1 to an infinite number gives you back the same infinite
number, so that:

(= (rest (map #(* % 10) (iterate #(/ % 10) 9/10)))
   (iterate #(/ % 10) 9/10))

is true, but I don't recommend typing that into a repl to check it!

Hmm. I wonder if you could represent irrationals as lazy sequences,
and do arithmetic on those?

       <mike
-- 
Mike Meyer <m...@mired.org>             http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to