1/999999999999999999999998999999999999999999999999
futilitycloset.com
futilitycloset.com
x/(1-x-x^2) = \sum_{n\geq0} F_n x^n,
so you just let x = 1e-24. In this case it's x^2/(1-x-x^2) to make the fraction come out with numerator 1.1/89 = 0.0 1 1 2 3 5...
1/9899 = 0.00 01 01 02 03 05 08 13 21 34 55...
1/998999 = 0.001 002 003 005 008 013 021 034 055 089...
So the blog wasted a ton of space by using an unnecessarily large example! How dumb.
Maybe this submission should be converted to a "Tell HN:", featuring your comment as the content.
Long answer follows.
It's actually easier to understand if you work backwards and arrive at the expression yourself, by asking yourself: "If I wanted the number that starts like 0.0...000 0...001 0...001 0...002 0...003 0...005 0...008 ... (with each block being 24 digits long), how would I express that number?"
Well, calling the Fibonacci numbers f_n (with f_1=0), that decimal expansion you want is sum (f_n 10^(-24n)) over n≥1. This is sum (f_n x^n) evaluated at x = 10^(-24). It is easy to work out (especially if you know the trick already) that sum (f_n x^n) = x^2 / (1 - x - x^2), which at x = 10^(-24) gives that the number we want is 1/(10^48 - 10^24 - 1), which is exactly what 1/999999999999999999999998999999999999999999999999 is.
This may be more interesting if you consider more examples:
* if we want the number 0 . 0001 0002 0004 0008 0016 0032 0064 0128..., then it is sum (2^(n-1) 10000^(-n)). We can calculate that sum(2^(n-1) x^n) is x/(1-2x), which at x = 1/10000 becomes 1/9998. And indeed 1/9998 = 0.0001000200040008001600320064012802560512102420484096...
Similarly,
* if we want the number 0 . 000 001 002 003 004 005 ..., then it is sum ((n-1) 1000^(-n)). And sum ((n-1) x^n) is x^2/(1-x)^2, and putting x = 1/1000 in it gives 1/999^2 = 1/998001, and indeed 1/998001 = 0.000001002003004005006007008009010011012013014015016...
Basically whenever sum (a_n x^n) has a nice form (aka the generating function of the sequence), you can plug in x = 1/(some power of 10) and get such pretty decimal expansions.
(Edit: Formatting, and the "short answer" at the top.)
The beautiful idea here is to consider formal power series (encoding sequences of values in polynomials without demanding convergence) https://en.wikipedia.org/wiki/Formal_power_series
Isn't this poor wording? The author is dividing 1 by the large number above, not the other way around.
"Divide four by two" = 4/2 = 2
"Divide two into four" = 2/4 = 1/2
Could this be a US/UK English difference?
Why would you use this phrasing? I suppose it can flow more easily in some cases, for instance 'first work out X, then work out Y, then divide them both into Z and see which one is larger' is less of a mouthful than the alternative.
I never use the "into" phrasing myself because it is confusing to me. But it does make some kind of sense if you think about it this way: "How many twos can you put into four?"
I went to school on the US East Coast, so you might be onto something here.
As an example, a person can easily read "divide 24 into 6" as "divide 24 into 6 [parts]," i.e. 24/x = 6, x = 4 — as opposed to 6/24 = x, x = 0.25. This use is especially reinforced by everyday experiences like dividing a cake into eight slices.
i don't really understand what you mean here. may you please elaborate ? thanks !
Edit: other comments have examples in Python, Clojure and bc.
10 ** (24 * 116) / 999999999999999999999998999999999999999999999999
Very cool math.fibonacci sequence is defined as: F(n) = F(n-1) + F(n-2)
substitute F(n-1) with F(n-2) + F(n-3): F(n) = F(n-2) + F(n-3) + F(n-2)
substitute F(n-3) with F(n-4) + F(n-5): F(n) = F(n-2) + F(n-5) + F(n-4) + F(n-2)
substitute F(n-4) with F(n-2) - F(n-3): F(n) = F(n-2) + F(n-5) + F(n-2) - F(n-3) + F(n-2)
simplify: F(n) = 3 * F(n-2) + F(n-5) - F(n-3)
because F(n-3) = F(n-4) + F(n-5), -F(n-4) = F(n-5)) - F(n-3):
F(n) = 3 * F(n-2) - F(n-4)
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=24*20
1/999999999999999999999998999999999999999999999999
.0000000000000000000000000000000000000000000000010000000000000000000\
00001000000000000000000000002000000000000000000000003000000000000000\
00000000500000000000000000000000800000000000000000000001300000000000\
00000000000210000000000000000000000340000000000000000000000550000000\
00000000000000089000000000000000000000144000000000000000000000233000\
00000000000000000037700000000000000000000061000000000000000000000098\
70000000000000000000015970000000000000000000025840000000000000000000\
04181
Don't know how.will give you the ten digit ones, with the last digit rounded up on the very end.
I havent quite got an exact formula for scale before the rounding is wrong, e.g. for 100 digits:
> echo 'scale=50000-2000-1;10/(10^200-10^100-1)' | BC_LINE_LENGTH=102 bc
scale=499
instead of scale=500-1
? I'm curious. 987654312 / 123456789 = 8FTFY
Fib sequence can be expressed as:
F(x) = x / (1 − x − x^2)
where x is an infinite stream of 0,1,0,0,0....
and with sane definitions of divide, add, multiply, subtract for these streams.
* http://www.seas.upenn.edu/~cis194/spring13/hw/06-laziness.pd.... Ex 6
> C:\Users\X>set /a result=1/2147483647
> 0
> C:\Users\X>set /a result=1/2147483648
> Invalid number. Numbers are limited to 32-bits of precision.
:-)
Can't say I've seen many flamewars about HN on reddit though.