Dada una matriz entera ay un entero no negativo i, genera un mapeo bque mapea los valores distintos en la icolumna th aa las filas de aquienes tienen ese valor en la icolumna th.
Puede suponer que iestá en el rango medio abierto [0, num_cols(a))(o [1, num_cols(a)]si elige usar índices basados en 1), y que todos los enteros están dentro del rango representable para su idioma. La entrada y la salida pueden realizarse de cualquier manera razonable, siempre que satisfaga los requisitos básicos del desafío (matriz 2D -> mapeo de ints a matrices 2D de ints). Mientras el mapeo sea claro y consistente, las claves no necesitan ser incluidas en la salida.
Ejemplos
[[1]], 0 -> {1: [[1]]}
[[3, 4, 5], [1, 4, 2], [5, 5, 5], [7, 7, 7], [1, 5, 9]], 1 -> {4: [[3, 4, 5], [1, 4, 2]], 5: [[5, 5, 5], [1, 5, 9]], 7: [[7, 7, 7]]}
[[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [2, 3, 4, 5, 6], [8, 9, 100, 0, 2]], 4 -> {5: [[1, 2, 3, 4, 5]], 1: [[5, 4, 3, 2, 1]], 6: [[2, 3, 4, 5, 6]], 2: [[8, 9, 100, 0, 2]]}
Este es el código de golf , por lo que gana la respuesta más corta en bytes.

Respuestas:
Octava , 24 bytes
Pruébalo en línea!
Esto crea una función anónima que devuelve una matriz cuyas filas coinciden con los criterios. Octave indexa las matrices en 1, no en cero, y las filas de una matriz están separadas por a
;.Las matrices son lo que Octave hace mejor, tan bien, de hecho, que este desafío se puede resolver utilizando sintaxis pura, sin funciones integradas.
Explicación
fuente
Rubí , 26 bytes
Pruébalo en línea!
fuente
Wolfram Language (Mathematica) , 21 bytes
1 indexado. Devuelve un
Associationmapeo.Pruébalo en línea!
Este es un caso raro en el que una función más larga (
Extract) reduce el recuento de bytes (el más corto esParto[[ ... ]]) porqueExtractpuede curry. El resultado es esta solución de dos funciones extremadamente concisa.Explicación
Función que extrae el
<second input>elemento th.Agrupe las
<first input>listas asociadas con claves distintas<above function>[element].fuente
Haskell ,
6460 bytesPruébalo en línea!
fuente
Limpio , 40 bytes
Pruébalo en línea!
Un lambda (
:: Int [[Int]] Int -> [[Int]]) donde una aplicación parcial de solo los dos primeros argumentos proporciona una asignación en el tercer argumento.fuente
J , 16 bytes
-3 bytes gracias a FrownyFrog!
Pruébalo en línea!
Explicación:
Un verbo diádico, tomando
icomo argumento izquierdo yacomo derecho.]es el argumento correctoa{"1encuentra los números enila columna th de cada fila</.agrupa grupos del argumento derecho, seleccionados por las teclas, proporcionados por el izquierdo~.@[encuentra las llaves únicas;"0vincula las teclas a los grupos seleccionadosfuente
;"0en lugar de,:salva 3jq, 100 bytes
usa un objeto para la salida, toma un argumento de línea de comando
$fmás una matriz en la entrada estándardesobuscado:
fuente
R ,
7955 bytesPruébalo en línea!
24 bytes recortados por @JayCe
fuente
cat(z)antes de imprimir para imprimir también la clave (no estoy claro si es necesario).Python 3 , 45 bytes
Pruébalo en línea!
Devuelve la asignación representada como una lambda anónima.
fuente
Protón , 29 bytes
Pruébalo en línea!
-3 bytes gracias al Sr. Xcoder usando curry y
filter(TBH, estoy un poco sorprendido de quefilterrealmente haya funcionado)fuente
filterahorran tres bytes.JavaScript (Node.js) , 29 bytes
Pruébalo en línea!
Actualizado ahora que me doy cuenta de los requisitos de salida suelta. Esto utiliza el curry como una técnica de golf, y también devuelve una función que toma una entrada
ny la asigna a las matrices adecuadas.fuente
Jalea , 5 bytes
Pruébalo en línea!
Omite las claves, pero debe quedar claro.
Argumento 1: i + 1
Argumento 2: a
fuente
Java 10,
13564 bytesDevuelve la
Function<Integer, List<int[]>>aceptación de una entrada de enteron, que devuelve una Lista de matrices (matrices-filas) donde losivalores 'th son iguales a los dadosn.Pruébalo en línea.
Explicación:
fuente