0votos

La sucesión de Golomb en Haskell

por AverageUser hace 1 año

Otra solución.

Cálculo eficiente de los términos de la sucesión de Golomb: 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, ...

1
2
3
4
5
6
7
8
9
10
aureo :: Double 
aureo = (1 + (sqrt 5))/2 
 
golomb :: (Integral a) => Double -> a 
golomb n = floor $ (o**(2-o))*(n**(o-1)) 
  where o = aureo 
 
{- 
golomb 10000 == 356 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.