| Copyright | Exercitium (27-05-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Triangulares_con_cifras
Description
Números triangulares con n cifras distintas
Los números triangulares se forman como sigue
* * *
* * * *
* * *
1 3 6La sucesión de los números triangulares se obtiene sumando los números naturales. Así, los 5 primeros números triangulares son
1 = 1
3 = 1+2
6 = 1+2+3
10 = 1+2+3+4
15 = 1+2+3+4+5Definir la función
triangularesConCifras :: Int -> [Integer]
tal que (triangulares n) es la lista de los números triangulares con n cifras distintas. Por ejemplo,
>>>take 6 (triangularesConCifras 1)[1,3,6,55,66,666]>>>take 6 (triangularesConCifras 2)[10,15,21,28,36,45]>>>take 6 (triangularesConCifras 3)[105,120,136,153,190,210]>>>take 5 (triangularesConCifras 4)[1035,1275,1326,1378,1485]>>>take 2 (triangularesConCifras 10)[1062489753,1239845706]
- triangularesConCifras :: Int -> [Integer]
- triangulares1 :: [Integer]
- triangulares2 :: [Integer]
- triangulares3 :: [Integer]
- triangulares4 :: [Integer]
- prop_triangulares :: Int -> Bool
- triangulares :: [Integer]
- nCifras :: Integer -> Int
Documentation
triangularesConCifras :: Int -> [Integer] Source #
Definición.
triangulares1 :: [Integer] Source #
triangulares es la sucesión de los números triangulares. Por ejemplo,
>>>take 15 triangulares1[1,3,6,10,15,21,28,36,45,55,66,78,91,105,120]
triangulares2 :: [Integer] Source #
2ª definición de triangulares (usando zipWith).
triangulares3 :: [Integer] Source #
3ª definición de triangulares (usando scanl).
triangulares4 :: [Integer] Source #
4ª definición de triangulares (con la fórmula)
prop_triangulares :: Int -> Bool Source #
(prop_triangulares n) se verifica si las definiciones de triangulares son equivalentes en sus primeros n términos. Por ejemplo,
>>>prop_triangulares 100True
Comparación de eficiencia:
> sum (take (10^6) triangulares1) 166667166667000000 (1.07 secs, 475,647,576 bytes) > sum (take (10^6) triangulares2) 166667166667000000 (1.23 secs, 667,646,128 bytes) > sum (take (10^6) triangulares3) 166667166667000000 (0.50 secs, 370,832,960 bytes) > sum (take (10^6) triangulares4) 166667166667000000 (1.09 secs, 489,997,432 bytes)
triangulares :: [Integer] Source #
Usaremos como triangulares la 3ª definición.