can multi-core improve single funciton?
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Tue Feb 10 17:26:39 EST 2009
On Tue, 10 Feb 2009 02:05:35 -0800, Niklas Norrthon wrote:
> According to the common definition of fibonacci numbers fib(0) = 0, fib
> (1) = 1 and fib(n) = fib(n-1) + fib(n-2) for n > 1. So the number above
> is fib(501).
So it is. Oops, off by one error!
Or, if you prefer, it's the right algorithm for a Lucas sequence with
first two values 1 and 1 instead of 0 and 1. :)
>>>> timeit.Timer('fib(500)', 'from __main__ import fib').timeit(1)
>>
>> 0.00083398818969726562
>
> And now for my version (which admitedly isn't really mine, and returns
> slightly incorrect fib(n) for large values of n, due to the limited
> floating point precision).
The floating point version is nice, but it starts giving incorrect
answers relatively early, from n=71. But if you don't need accurate
results (a relative error of 3e-15 for n=71), it is very fast.
--
Steven
More information about the Python-list
mailing list