Números naturales separados por ceros
Enunciado
Definir la sucesión
1 |
naturales0 :: [Int] |
cuyos elementos son los números naturales separados por 0. Por ejemplo,
1 2 |
ghci> take 25 naturales0 [0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12] |
Comprobar con QuickCheck que el n-ésimo término de la sucesión es n*(1+(-1)^n)/4.
Nota. En la comprobación usar
1 |
quickCheckWith (stdArgs {maxSize=7}) prop_naturales0 |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import Test.QuickCheck naturales0 :: [Int] naturales0 = concat [[n,0] | n <- [0..]] -- La propiedad es prop_naturales0 :: Int -> Property prop_naturales0 n = n >= 0 ==> naturales0 !! n == n*(1+(-1)^n) `div` 4 -- La comprobación es -- ghci> quickCheckWith (stdArgs {maxSize=7}) prop_naturales0 -- +++ OK, passed 100 tests. |
Un comentario