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
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)] |
5 Comentarios