Sin ceros consecutivos
Definir la función
1 |
sinDobleCero :: Int -> [[Int]] |
tal que (sinDobleCero n) es la lista de las listas de longitud n formadas por el 0 y el 1 tales que no contiene dos ceros consecutivos. Por ejemplo,
1 2 3 4 5 6 7 |
ghci> sinDobleCero 2 [[1,0],[1,1],[0,1]] ghci> sinDobleCero 3 [[1,1,0],[1,1,1],[1,0,1],[0,1,0],[0,1,1]] ghci> sinDobleCero 4 [[1,1,1,0],[1,1,1,1],[1,1,0,1],[1,0,1,0],[1,0,1,1], [0,1,1,0],[0,1,1,1],[0,1,0,1]] |
Soluciones
[schedule expon=’2018-06-13′ expat=»06:00″]
- Las soluciones se pueden escribir en los comentarios hasta el 06 de junio.
- El código se debe escribir entre una línea con <pre lang=»haskell»> y otra con </pre>
[/schedule]
[schedule on=’2018-06-13′ at=»06:00″]
1 2 3 4 5 |
sinDobleCero :: Int -> [[Int]] sinDobleCero 0 = [[]] sinDobleCero 1 = [[0],[1]] sinDobleCero n = [1:xs | xs <- sinDobleCero (n-1)] ++ [0:1:ys | ys <- sinDobleCero (n-2)] |
[/schedule]
El orden no es el mismo que en los ejemplos, pero los ejemplos dan igual: