Exercitium1-0.1.0.0: Problemas de Exercitium (Volumen 1)

CopyrightExercitium (05-05-14)
LicenseGPL-3
MaintainerJoseA.Alonso@gmail.com
Safe HaskellSafe
LanguageHaskell2010

Descomposiciones_triangulares

Description

Descomposiciones como sumas de tres triangulares

Definir la función

descomposicionesTriangulares :: Int -> [(Int, Int, Int)] 

tal que (descomposicionesTriangulares n) es la lista de las ternas correspondientes a las descomposiciones de n en tres sumandos, como máximo, formados por números triangulares. Por ejemplo,

>>> descomposicionesTriangulares 6
[(0,0,6),(0,3,3)]
>>> descomposicionesTriangulares 26
[(1,10,15),(6,10,10)]
>>> descomposicionesTriangulares 21
[(0,0,21),(0,6,15),(1,10,10),(3,3,15)]
>>> descomposicionesTriangulares 61
[(0,6,55),(1,15,45),(3,3,55),(6,10,45),(10,15,36)]
>>> descomposicionesTriangulares 66
[(0,0,66),(0,21,45),(1,10,55),(6,15,45),(10,28,28),(15,15,36)]
>>> descomposicionesTriangulares 126
[(0,6,120),(0,21,105),(3,3,120),(3,45,78),(6,15,105),(15,45,66),(36,45,45)]
>>> length (descomposicionesTriangulares 9256)
88
>>> length (descomposicionesTriangulares 10000)
42

Comprobar con QuickCheck que todo número se puede descomponer como suma de tres triangulares.

Synopsis

Documentation

triangulares :: [Int] Source #

triangulares es la lista de los números triangulares. Por ejemplo,

>>> take 10 triangulares
[0,1,3,6,10,15,21,28,36,45]

prop_descomposicionesTriangulares :: Positive Int -> Bool Source #

Comprobación de la propiedad.

>>> quickCheck prop_descomposicionesTriangulares
+++ OK, passed 100 tests.