[seqfan] Re: A1595 mentioned in Medium article
Fred Lunnon
fred.lunnon at gmail.com
Mon Nov 9 07:53:24 CET 2020
In the (handwritten!) article by Dijkstra cited by A001595 at
https://www.cs.utexas.edu/users/EWD/ewd07xx/EWD797.PDF
[ beware: his indices n are offset by 1 from standard usage! ]
equn. (7) gives
L(n+1) = 2 F(n+1) - 1 ,
where L(n) , F(n) denote Leonardo, Fibonacci sequences resp.;
it follows that
F(n) - L(n) = 1 - F(n) < 0 for n > 2 .
A simple efficient algorithm for computing isolated values of F(n)
uses the explicit formula from equn. (6), in the more usual form
F(n) = ( t^n - s^n ) / sqrt(5) ,
where
t = ( 1 + sqrt(5) )/2 , s = ( 1 - sqrt(5) )/2 ;
each exponential requires order log(n) multiplications;
and since |s| ~ 0.618 < 1 one may just ignore s^n for n >= 2 ,
instead rounding the result to the nearest integer.
[ With a little more care, the recursion can be improved via "divide
and conquer" in the same way as exponentiation, to use entirely integers,
again requiring order log(n) multiplications. ]
There is nothing wrong with using the recursion directly for small
values: simply compute each F(m) in turn for 2 <= m <= n ,
requiring order n additions.
WFL
On 11/9/20, Alonso Del Arte <alonso.delarte at gmail.com> wrote:
> I mention A001595 in my Medium article about timeouts in JUnit 5:
> https://levelup.gitconnected.com/asserting-timeouts-in-junit-5-4477054f82d3
> The obvious algorithm for calculating Fibonacci numbers is extremely
> inefficient for all but the smallest positive indices. And even for small
> indices it requires a lot of recursion. That's what led me to A001595, and
> I use it to predict that it would take some 36 million years to calculate
> Fibonacci(100).
>
> I've been wondering about Fibonacci(*n*) − A001595(*n*). That's probably
> already in the OEIS, though maybe without signs. It does change sign, right?
>
> Al
>
> --
> Alonso del Arte
> Author at SmashWords.com
> <https://www.smashwords.com/profile/view/AlonsoDelarte>
> Musician at ReverbNation.com <http://www.reverbnation.com/alonsodelarte>
>
> --
> Seqfan Mailing list - http://list.seqfan.eu/
>
More information about the SeqFan
mailing list