Representación reducida de matrices dispersas

Una representación reducida de una matriz dispersa es una lista de listas donde cada una de las listas representa una fila de la matriz mediante listas de pares correspondientes a las snúmeros de columnas con valores no nulos de la matriz. Por ejemplo, la representacioń reducida de la matriz

es [[(3,4)],[(2,5)],[]].

Definir la función

tal que (reducida p) es la representación reducida de la matriz p. Por ejemplo,

Soluciones

Matrices dispersas

Una matriz es dispersa si la mayoriá de sus elementos son ceros. Por ejemplo, la primera de las siguientes matrices es dispersa y la segunda no lo es

Usando la librería Data.Matrix, las anteriores matrices se pueden definir por

La dispersión de una matriz es el cociente entre el número de ceros de la matriz y el producto de sus números de filas y de columnas.

Definir las siguientes funciones

tales que

  • (dispersion p) es la dispersión de la matriz p. Por ejemplo,

  • (esDispersa p) se verifica si la matriz p es dispersa. Por ejemplo,

Soluciones

Ampliación de una matriz

Definir, usando Data.Matrix, la función

tal que (ampliaMatriz p f c) es la matriz obtenida a partir de p repitiendo cada fila f veces y cada columna c veces. Por ejemplo, si ej1 es la matriz definida por

entonces

Nota: Este ejercicio está basado en el problema Skener de Kattis.

Soluciones

Rotación de una matriz

En la siguiente figura, al rotar girando 90 grados en el sentido del reloj la matriz de la izquierda, obtenemos la de la derecha

Definir la función

tal que (rota p) es la matriz obtenida girando en el sentido del reloj la matriz cuadrada p. Por ejemplo,

Soluciones

Buscaminas

Enunciado

Soluciones

Referencia

El ejercicio está basado en Minesweeper de UVa Online Judge.