Finding Fibonacci numbers for which the first and last nine digits are pandigital.

Solution:

Very nice problem. I didnt realize you could deal with the precision problem.
Therefore I used this identity to speed up the fibonacci calculation:
f_(2*n+k)
= f_k*(f_(n+1))^2
+ 2*f_(k-1)*f_(n+1)*f_n
+ f_(k-2)*(f_n)^2

The lesson I learned fom this challenge, is: know mathematical identities and exploit them. They allow you take short cuts.
Normally you compute all previous fibonacci numbers to compute a random fibonacci number. Which has linear costs. The aforementioned identity builds the number not from its two predecessors but from 4 much smaller ones. This makes the algorithm logarithmic in its complexity. It really shines if you want to compute a random very large fibonacci number. f.i. the 10mio.th fibonacci number which is over 2mio characters long, took 20sec to compute on my 2.2ghz laptop.