[Haskell-cafe] Floating phi, round and even Fibonnaci numbers
haskell at list.mightyreason.com
haskell at list.mightyreason.com
Tue Jul 10 17:45:01 EDT 2007
And using dynamic precision :
http://haskell.org/haskellwiki/Applications_and_libraries/Mathematics#Dynamic_precision
The ERA package (darcs get http://darcs.augustsson.net/Darcs/CReal/) one can do
better...
> import CReal
>
> even_fibs'' :: (Integral t) => [t]
> even_fibs'' = iterate (\x -> round(fromIntegral x * (dp**3))) 2
> where dp :: CReal
> dp = phi
>
>
> even_fibs_2 = filter even fibs
> where fibs = 1 : 1 : zipWith (+) (fibs) (tail fibs)
>
> z n = take n $ zipWith (\a b -> (a==b,a)) even_fibs'' even_fibs_2
>
> t z = not $ null $ filter fst $ z
>
> main = let y = z 1000
> in putStr . unlines . map show $ y
This works quite well....
(True,2)
(True,8)
(True,34)
(True,144)
(True,610)
(True,2584)
(True,10946)
(True,46368)
...snip...
(True,3987795824799770715342824788687062628452272409956636682999616408)
(True,16892574194241670428824570378554538679120491007541580961500624834)
(True,71558092601766452430641106302905217344934236440122960529002115744)
...
More information about the Haskell-Cafe
mailing list