Sua tarefa é escrever um programa que, dada uma matriz e um número, você precise dividir a matriz em partes com tamanho e número.
Regras
Seu programa receberá uma matriz A
, bem como um número inteiro positivo n
. A matriz deve então ser dividida em partes de comprimento n
, se o comprimento da sequência não for divisível por n
qualquer sobra no final deve ser considerado seu próprio pedaço.
Se
n
for maior que o comprimento da matrizA
, você precisará retornar a matrizA
, por exemplo: sen = 4
earray A = [1,2,3]
, deverá retornar[1,2,3]
A matriz pode conter qualquer tipo e não número.
Você não deve alterar a ordem (ou direção) de nenhum item da esquerda para a direita. Por exemplo
if n = 2
eA= [1,2,3]
. Qualquer resultado, em vez de[[1,2],[3]]
será inválido.
Casos de teste
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]]
Isso é código-golfe , então você terá os bytes mais curtos de cada idioma.
fonte
n
for maior que o comprimento deA
que precisamos retornar‽A
Tem certeza de que não está falando sério[A]
?n
retorno muito grande deve retornar[A]
, por exemplo[[1,2,3]]
. E sen
é exatamente o comprimento deA
?A
ao invés[A]
, o que excluiria uma enorme quantidade de línguas.Respostas:
05AB1E , 1 byte
Experimente online ou verifique todos os casos de teste .
Builtins ftw. :)
fonte
JavaScript (ES6), 36 bytes
Toma entrada como
(n)(array)
.Experimente online!
Comentado
fonte
APL (Dyalog Unicode) , SBCS de 12 bytes
Muito obrigado a Adám por basicamente fazer basicamente todo o golfe (e basicamente todo o conhecimento sobre APL que tenho atualmente> _>).
Explicação
Execução
Argumentos
2
,1 2 3 4 5 6 7
. Observe que as matrizes APL são do formatoa b c
, com parênteses opcionais.Experimente online!
fonte
Python 3 , 61 bytes
Experimente online!
Modifica a solução Python 3 existente de Henry T para produzir uma saída válida para n> = len (A).
Postagem como sua própria resposta devido à falta de privilégios para comentar.
fonte
Prolog (SWI) ,
908461 bytesCódigo:
O formato de entrada pode ser um pouco estranho, mas é:
Por exemplo, para a entrada:
Você precisaria usar
[1, 2, 3, 4, 5, 6] * 2 * Result.
.Experimente online!
Versão não destruída:
Experimente online! .
fonte
PHP, 15 bytes
requer PHP 7. Ligue com
$f(ARRAY, N)
.fonte
Perl 6 , 13 bytes
Experimente online!
Função ao curry envolvendo o
batch
built-in.fonte
;
após o código Whatever?;
quando passa argumentos com$^a
ou@_
.Limpo , 54 bytes
Experimente online!
fonte
Python 2 , 39 bytes
Experimente online!
Assume que 1 pedaço por linha é uma saída aceitável.
fonte
Brainfuck, 71 bytes
Não sei se isso conta ou não ... formato de entrada:
Pega a entrada e coloca um espaço toda vez que os
n
caracteres passamExplicação (sem vírgulas porque isso interromperia o programa):
fonte
,
mais) for usada mais, poderia ser uma célula mais fácil de acessar do que se fosse colocada em outras células) ou use um bruteforcer. Eu não sou habilidoso em jogar golfe no BF, portanto, essas sugestões podem não ser úteis.n n n A space
como minha configuração de célula, se você pode pensar em uma maneira melhor ...A space n n n ...
funcionar (ouspace A n n n...
)?Python 3, 46 caracteres
-1 graças a @Collin Phillips.
Experimente online!
fonte
CJam , 3 bytes
Este é um bloco anônimo que pega uma matriz de números e um número da pilha e os substitui por uma matriz de matrizes.
Experimente online!
fonte
Braquilog , 2 bytes
Experimente online!
fonte
Elixir , 16 bytes
Experimente online!
fonte
Carvão , 1 byte
Experimente online! A E / S padrão do carvão vegetal dificulta a demonstração do uso de qualquer coisa, exceto cadeias. Se você deseja um programa completo que utiliza listas numéricas e gera listas formatadas, isso pode ser feito da seguinte maneira:
Experimente online! Link é a versão detalhada do código. Explicação:
fonte
C # (compilador interativo do Visual C #) ,
787743 bytesExperimente online!
Acho que devemos ser capazes de escrever apenas
int i;
porque 0 é o padrão de int. Eu deixá-lo para evitar o erro:error CS0165: Use of unassigned local variable 'i'
.fonte
F # (.NET Core) , 15 bytes
Experimente online!
Bem, F # tem um builtin ...
fonte
J , 4 bytes
Experimente online!
Pega a matriz como argumento à esquerda e o tamanho do bloco como argumento à direita.
Usa um gancho diádico e o infixo advérbio com um argumento negativo, que faz o que queremos por definição.
Nota: O tipo de retorno deve estar na caixa, pois J permite apenas tabelas de itens de tamanhos iguais.
fonte
Japonês , 2 bytes
Experimente online!
fonte
PHP , 45 bytes
Experimente online!
fonte
array_chunk
uma resposta válida?Java 10,
10680 bytesImprime os pedaços sem delimitador.
Experimente online.
106 bytes:
Na verdade, retorna uma lista de listas.
Experimente online.
Explicação:
fonte
K (oK) , 10 bytes
Experimente online!
fonte
Ruby , 25 bytes
Experimente online!
Se podemos retornar enumeradores em vez de matrizes, torna-se simplesmente:
Ruby , 21 bytes
Experimente online!
fonte
PicoLisp ,
7574 bytesExperimente online!
fonte
Coco , 8 bytes
Experimente online!
fonte
V , 6 bytes
Experimente online!
Hexdump:
Explicação:
fonte
Clojure, 14 bytes
builtins eu acho
fonte
Haskell , 26 bytes
Aqui está uma versão mais interessante, com apenas mais alguns bytes (graças a nimi por cinco bytes em cada solução):
Haskell , 31 bytes
Experimente online!
fonte
n!x=take n x:n!drop n x
.Data.Lists
fornece tambémchunksOf
.PowerShell ,
6765 bytes-2 bytes obrigado AdmBorkBork
Experimente online!
fonte
rv b
(alias paraRemove-Variable
) em vez de$b=@()
salvar dois bytes.Geléia , 1 byte
Experimente online!
Embora a impressora pareça que as divisões de elemento único não são agrupadas em listas, elas realmente são.
fonte