| Copyright | Exercitium (17-05-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Descomposiciones_con_n_sumandos
Description
Descomposiciones de x como sumas de n sumandos de la lista ns
Definir la función
sumas :: (Num a, Ord a) => Int -> [a] -> a -> [[a]]
tal que (sumas n ns x) es la lista de las descomposiciones de x como sumas de n sumandos en la lista ns. Por ejemplo,
>>>sumas 2 [1,2] 3[[1,2]]>>>sumas 2 [-1] (-2)[[-1,-1]]>>>sumas 2 [-1,3,-1] 2[[-1,3]]>>>sumas 2 [1,2] 4[[2,2]]>>>sumas 2 [1,2] 5[]>>>sumas 3 [1,2] 5[[1,2,2]]>>>sumas 3 [1,2] 6[[2,2,2]]>>>sumas 2 [1,2,5] 6[[1,5]]>>>sumas 2 [1,2,3,5] 4[[1,3],[2,2]]>>>sumas 2 [1..5] 6[[1,5],[2,4],[3,3]]>>>sumas 3 [1..5] 7[[1,1,5],[1,2,4],[1,3,3],[2,2,3]]>>>sumas 3 [1..200] 4[[1,1,2]]
Documentation
combinacionesR :: Int -> [a] -> [[a]] Source #
(combinacionesR k xs) es la lista de las combinaciones orden k de los elementos de xs con repeticiones. Por ejemplo,
>>>combinacionesR 2 "abc"["aa","ab","ac","bb","bc","cc"]>>>combinacionesR 3 "bc"["bbb","bbc","bcc","ccc"]>>>combinacionesR 3 "abc"["aaa","aab","aac","abb","abc","acc","bbb","bbc","bcc","ccc"]
prop_equiv_sumas :: Positive Int -> [Int] -> Int -> Bool Source #
(prop_equiv_sumas n ns x) se verifica si las definiciones de
sumas son equivalentes para n, ns y x. Por ejemplo,
>>>quickCheckWith (stdArgs {maxSize=7}) prop_equiv_sumas+++ OK, passed 100 tests.
Comparación de eficiencia
> sumas1 3 [1..200] 4 [[1,1,2]] (2.52 secs, 1,914,773,472 bytes) > sumas 3 [1..200] 4 [[1,1,2]] (0.17 secs, 25,189,688 bytes)