Una matriz estocástica es una matriz de probabilidades utilizada en el contexto de las cadenas de Markov.
Una matriz estocástica derecha es una matriz donde cada fila suma 1
.
Una matriz estocástica izquierda es una matriz donde cada columna suma 1
.
Una matriz doblemente estocástica es una matriz donde cada fila y cada columna suman 1
.
En este desafío, representaremos las probabilidades en porcentaje usando enteros . En ese caso, una fila o columna debe sumar 100
y no 1
.
Su objetivo es escribir un programa o función que, dada una matriz cuadrada de enteros como entrada, genere uno de los cuatro valores que indican que la matriz es estocástica derecha, estocástica izquierda, doblemente estocástica o ninguna de esas.
Entrada
Puede usar cualquier representación adecuada de una matriz que sea natural para su idioma para la entrada. Por ejemplo, una lista de listas, una cadena de valores separados por comas con filas separadas por saltos de línea, etc.
La matriz de entrada siempre será cuadrada y solo contendrá enteros no negativos. La matriz de entrada siempre será al menos 1×1
.
Puede pasar la entrada utilizando STDIN
, como argumento de función, o algo similar.
Salida
Debe elegir cuatro salidas distintas que correspondan a estocástico derecho , estocástico izquierdo , doblemente estocástico o ninguno de esos . Esas salidas deben ser constantes independientemente de la entrada que se pase. Es posible que su programa no devuelva resultados diferentes para el mismo caso, por ejemplo, decir que cualquier número negativo no corresponde a ninguno de ellos no es válido.
En resumen, debe haber una correspondencia 1 a 1 entre su salida y los cuatro casos posibles. Algunos ejemplos de esas cuatro salidas serían {1, 2, 3, 4}
o {[1,0], [0,1], [1,1], [0,0]}
ni siquiera {right, left, doubly, none}
.
Indique en su respuesta las cuatro salidas que utiliza su programa.
Si una matriz es doblemente estocástica, debe devolver la salida correspondiente a doblemente estocástica, y no estocástica derecha o izquierda.
Puede imprimir el resultado STDOUT
, devolverlo desde una función o algo similar.
Casos de prueba
[100] => Doubly stochastic
[42] => None of those
[100 0 ] => Doubly stochastic
[0 100]
[4 8 15]
[16 23 42] => Left stochastic
[80 69 43]
[99 1 ] => Right stochastic
[2 98]
[1 2 3 4 ]
[5 6 7 8 ] => None of those
[9 10 11 12]
[13 14 15 16]
Tanteo
Este es el código de golf , por lo que gana la respuesta más corta en bytes.