Su tarea es escribir un programa que, dado un conjunto y un número, necesita dividir el conjunto en trozos con el tamaño es número.
Reglas
Su programa recibirá una matriz A
, así como un número entero positivo n
. La matriz se debe dividir en trozos de longitud n
, si la longitud de la cadena no es divisible por n
las sobras al final debe considerarse su propio fragmento.
Si
n
es mayor que la longitud de la matrizA
, deberá devolver la matrizA
, por ejemplo: sin = 4
yarray A = [1,2,3]
, debe devolver[1,2,3]
La matriz puede contener cualquier tipo en lugar de número.
No debe cambiar el orden (o dirección) de ningún artículo de izquierda a derecha. Por ejemplo
if n = 2
yA= [1,2,3]
. Cualquier resultado en lugar de[[1,2],[3]]
será inválido.
Casos de prueba
n A Output
2 [1,2,3,4,5,6] [[1,2],[3,4],[5,6]]
3 [1,2,3,4,5,6] [[1,2,3],[4,5,6]]
4 [1,2,3,4,5,6] [[1,2,3,4],[5,6]]
Este es el código de golf , por lo que los bytes más cortos de cada idioma serán los ganadores.
fuente
n
es mayor que la longitud de laA
que necesitamos regresar‽A
¿Estás seguro de que no quieres decir[A]
?n
debería volver un demasiado grande[A]
, por ejemplo[[1,2,3]]
. ¿Qué pasa sin
es exactamente la longitud deA
?A
lugar de[A]
, lo que excluiría una gran cantidad de idiomas.Respuestas:
05AB1E , 1 byte
Pruébelo en línea o verifique todos los casos de prueba .
Builtins ftw. :)
fuente
JavaScript (ES6), 36 bytes
Toma entrada como
(n)(array)
.Pruébalo en línea!
Comentado
fuente
APL (Dyalog Unicode) , SBCS de 12 bytes
Muchas gracias a Adám por hacer básicamente todo el golf (y básicamente por todos los conocimientos de APL que tengo actualmente> _>).
Explicación
Ejecución
Argumentos
2
,1 2 3 4 5 6 7
. Tenga en cuenta que las matrices APL son de la formaa b c
, con paréntesis opcionales circundantes.Pruébalo en línea!
fuente
Python 3 , 61 bytes
Pruébalo en línea!
Modifica la solución Python 3 existente de Henry T para producir una salida válida para n> = len (A).
Publicar como su propia respuesta debido a la falta de privilegios para comentar.
fuente
Prólogo (SWI) ,
908461 bytesCódigo:
El formato de entrada puede ser un poco extraño, pero es:
Por ejemplo, para la entrada:
Tendría que usar
[1, 2, 3, 4, 5, 6] * 2 * Result.
.Pruébalo en línea!
Versión sin golf:
Pruébalo en línea! .
fuente
PHP, 15 bytes
requiere PHP 7. Llamar con
$f(ARRAY, N)
.fuente
Perl 6 , 13 bytes
Pruébalo en línea!
Función curry que envuelve el
batch
incorporado.fuente
;
código después de Cualquiera?;
al pasar argumentos con$^a
o@_
.Limpio , 54 bytes
Pruébalo en línea!
fuente
Python 2 , 39 bytes
Pruébalo en línea!
Asume que 1 fragmento por línea es una salida aceptable.
fuente
Brainfuck, 71 bytes
No sé si esto cuenta o no ... formato de entrada:
Toma la entrada y pone un espacio cada vez
n
que pasan los personajesExplicación (sin comas porque eso rompería el programa):
fuente
,
más) se usa más, se podría colocar una celda que sea más fácil de acceder que si se colocara en otras células) o use un bruteforcer. No soy experto en golf en BF, por lo que estas sugerencias pueden no ser útiles.n n n A space
como configuración de mi celda, si se te ocurre una mejor manera ...A space n n n ...
funcionar (ospace A n n n...
)?Python 3, 46 caracteres
-1 gracias a @Collin Phillips.
Pruébalo en línea!
fuente
CJam , 3 bytes
Este es un bloque anónimo que toma una matriz de números y un número de la pila, y los reemplaza por una matriz de matrices.
Pruébalo en línea!
fuente
Brachylog , 2 bytes
Pruébalo en línea!
fuente
Elixir , 16 bytes
Pruébalo en línea!
fuente
Carbón , 1 byte
Pruébalo en línea! La E / S predeterminada de Charcoal dificulta la demostración utilizando cualquier cosa excepto cadenas. Si desea un programa completo que tome listas numéricas y genere listas formateadas, puede hacerlo de la siguiente manera:
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
fuente
C # (compilador interactivo de Visual C #) ,
787743 bytesPruébalo en línea!
Creo que deberíamos poder escribir simplemente
int i;
porque 0 es el valor predeterminado de int. Lo dejo para evitar el error:error CS0165: Use of unassigned local variable 'i'
.fuente
F # (.NET Core) , 15 bytes
Pruébalo en línea!
Bueno F # tiene un incorporado ...
fuente
J , 4 bytes
Pruébalo en línea!
Toma la matriz como argumento izquierdo y el tamaño del fragmento como argumento derecho.
Utiliza un gancho diádico y el adverbio infijo con un argumento negativo, que hace lo que queremos por definición.
Nota: El tipo de retorno debe estar encuadrado porque J solo permite tablas de elementos de igual tamaño.
fuente
Japt , 2 bytes
Pruébalo en línea!
fuente
PHP , 45 bytes
Pruébalo en línea!
fuente
array_chunk
Sería una respuesta válida?Java 10,
10680 bytesImprime los trozos sin delimitador.
Pruébalo en línea.
106 bytes:
En realidad, devuelve una lista de listas.
Pruébalo en línea.
Explicación:
fuente
K (oK) , 10 bytes
Pruébalo en línea!
fuente
Rubí , 25 bytes
Pruébalo en línea!
Si podemos devolver enumeradores en lugar de matrices, entonces se convierte simplemente en:
Ruby , 21 bytes
Pruébalo en línea!
fuente
PicoLisp ,
7574 bytesPruébalo en línea!
fuente
Coco , 8 bytes
Pruébalo en línea!
fuente
V , 6 bytes
Pruébalo en línea!
Hexdump:
Explicación:
fuente
Clojure, 14 bytes
construcciones supongo
fuente
Haskell , 26 bytes
Aquí hay una versión más interesante, con solo unos pocos bytes más (gracias a nimi por cinco bytes en cada solución):
Haskell , 31 bytes
Pruébalo en línea!
fuente
n!x=take n x:n!drop n x
.Data.Lists
proporciona tambiénchunksOf
.PowerShell ,
6765 bytes-2 bytes gracias AdmBorkBork
Pruébalo en línea!
fuente
rv b
(alias paraRemove-Variable
) en lugar de$b=@()
guardar dos bytes.Gelatina , 1 byte
Pruébalo en línea!
Si bien la impresora hace que parezca que las divisiones de un solo elemento no están incluidas en listas, en realidad lo están.
fuente