Dada una matriz no vacía de enteros no negativos, responda qué filas únicas contribuyen más a la suma total de elementos en la matriz.
Responda con cualquier indicación razonable, por ejemplo, una máscara del orden de aparición de las filas únicas (u orden de clasificación), o índices (basados en cero o en uno) de esos, o una submatriz compuesta por las filas (en cualquier orden) o alguna tipo de construcción de diccionario ... ¡pero explíquelo!
Ejemplos
[[1,2,3],[2,0,4],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]
:
Las filas únicas son [1,2,3]
, [2,0,4]
y [6,3,0]
cada una contribuye respectivamente 6, 6 y 9 cada vez que ocurren. Sin embargo, ocurren una vez, tres y dos veces respectivamente, por lo que todas sus ocurrencias respectivas contribuyen 6, 18 y 18 al total (42), por lo que las dos últimas filas son las que más contribuyen. Las respuestas válidas son por lo tanto:
[false,true,true]
máscara en apariencia / orden de clasificación o
[1,2]
/ [2,3]
cero / índices basados en uno de los anteriores o
[[2,0,4],[6,3,0]]
las filas reales
⋮
[[1,2],[3,1],[2,3],[1,2],[3,1],[2,3],[1,2]]
[false,false,true]
(orden de apariencia) / [false,true,false]
(orden de clasificación)
[2]
/ [3]
(orden de apariencia) / [1]
/ [2]
(orden de clasificación)
[[2,3]]
⋮
fuente
Pyth , 9 bytes
-1 gracias a FryAmTheEggman!
Pruébalo en línea!
fuente
k
no es necesaria. También.M*sZ/QZ{
parece ser una solución de la misma longitud entonces.R , 64 bytes
Pruébalo en línea!
Devuelve un vector booleano con VERDADERO / FALSO en orden de clasificación (lexicográfico).
Las filas únicas se muestran como nombres de vectores, por lo que es fácil identificar las más contribuyentes.
fuente
Python 3 ,
153145129 bytes-8 bytes gracias a @Mr. Xcoder!
Pruébalo en línea!
fuente
Haskell, 60 bytes
Devuelve una lista de las filas.
fuente
Carbón de leña , 25 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. El formato de salida predeterminado es cada elemento de fila en su propia línea y filas a doble espacio. Explicación:
fuente
Mathematica, 48 bytes
o
donde (por ejemplo)
fuente
SortBy[Gather@m,Total@*Flatten][[-1,1]]
TakeLargestBy[Gather[m], Total[#, 2] &, 1][[1, 1]] /@ m
JavaScript (ES6), 88 bytes
Emite una matriz de valores booleanos en orden de aparición.
Pruébalo en línea!
fuente
Groovy , 76 bytes
Pruébalo en línea!
Devuelve como booleanos en orden de clasificación
fuente
Scala , 63 bytes
Pruébalo en línea!
Devuelve booleanos en orden de aparición
fuente
APL (Dyalog Unicode) , 12 bytes
Pruébalo en línea!
-2 gracias a Adám . -1 gracias al formato de salida alternativo.
fuente
Wolfram Language (Mathematica) , 42 bytes
Pruébalo en línea!
fuente
Python 2 ,
8178 bytesPruébalo en línea!
3 bytes gracias a Black Owl Kai .
Dada una colección de tuplas, la salida es un conjunto de esas tuplas que tienen la propiedad máxima deseada.
fuente
Japt ,
1311 bytes-2 bytes de @Shaggy
Pruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) , 126 bytes
Pruébalo en línea!
La mayor parte de este código se gasta sacando todos los valores duplicados, ya que el comparador predeterminado para las listas no compara los valores dentro de las listas. Eso significa que no se pueden utilizar
Distinct()
,GroupBy()
oContains
para filtrar la lista.fuente
K (ngn / k) , 17 bytes
Pruébalo en línea!
{
}
funcionar con argumentox
=x
grupo: forma un diccionario en el que las claves son filas y los valores son listas de sus índices en la matrizx@
indexar la matriz original con eso. el resultado es nuevamente un diccionario con las filas como claves. los valores son copias múltiples de la clave correspondiente+//'
suma hasta la convergencia de cada uno (actúa solo sobre los valores; las claves permanecen como están)a:
asignar aa
|/
máximo (de los valores)a=|/a
un diccionario de fila a booleano cuyas filas contribuyen más&
"donde", es decir, qué teclas corresponden a valores de 1fuente
Japt,
1110 bytesEjecútalo en línea
fuente
05AB1E ,
109 bytesPruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
Gaia , 10 bytes
Pruébalo en línea!
Como Gaia no acepta listas a través de entradas muy fácilmente, esta es una función que acepta una lista desde la parte superior desde la parte superior de la pila y deja el resultado en la parte superior (como máscaras de orden ordenado).
fuente
J , 16 bytes
Pruébalo en línea!
Un verbo monádico que da el resultado booleano en orden de aparición.
Cómo funciona
fuente