Votre défi aujourd'hui est de prendre un tableau, de le diviser en morceaux et d'ajouter ces morceaux.
Voici comment cela fonctionne: votre programme ou fonction recevra un tableau d'entiers a
et une taille de bloc L
. Le tableau doit être divisé en tableaux de taille L
, si la longueur du tableau n'est pas divisible par, L
alors le tableau doit avoir des 0 ajoutés pour qu'il soit divisible de manière égale. Une fois que le tableau est fragmenté, tous les morceaux doivent être ajoutés ensemble par élément. Le tableau résultant est ensuite sorti.
Vous pouvez supposer qu'il L
est supérieur à 0, ce qui a
n'est pas vide. Vous ne pouvez pas faire l'hypothèse que son a
contenu est positif.
Voici un exemple:
[1,2,3,4,5,6,7,8], 3 => [1,2,3]+[4,5,6]+[7,8,0] => [1+4+7,2+5+8,3+6+0] => [12,15,9]
Cas de test:
Array Length Output
[1] 1 [1]
[1] 3 [1,0,0]
[0] 3 [0,0,0]
[1,2] 3 [1,2,0]
[1,2] 1 [3]
[-1,1] 2 [-1,1]
[-7,4,-12,1,5,-3,12,0,14,-2] 4 [12,-1,0,1]
[1,2,3,4,5,6,7,8,9] 3 [12,15,18]
C'est le code-golf , le moins d'octets gagne!
Réponses:
MATL , 4 octets
Essayez-le en ligne!
Le premier morceau de code MATL que j'ai écrit! Prend deux entrées,
a
comme vecteur de ligne (séparé par des virgules) etl
comme nombre. Fonctionne pour êtrela source
Python 3 ,
676542 octetsUtilise le fait que la somme d'un tableau vide est 0
Essayez-le en ligne!
la source
Gelée ,
76 octets1 octet merci à Dennis.
Essayez-le en ligne!
la source
Ż¡sS
(équivalent à0;$¡sS
).Java 7, 86 octets
Pas de plis ou matrices fantaisie, juste une bonne
for
boucle à l' ancienne :)Essayez-le sur Ideone
Doublé:
la source
Python 2 , 49 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 51 octets
Prend entrée dans la syntaxe corroyage:
f([1,2])(3)
.Cas de test
Afficher l'extrait de code
la source
(a,n,o=[])=>a.map((v,i)=>o[i%n]=~~o[i%n]+v)&&o
a=>n=>a.map((v,i)=>o[i%=n]=~~o[i]+v,o=[])&&o
mais il n'ajoute pas le remplissage nul requis.f=
devrait faire partie de votre nombre de personnages.f=
n'est pas nécessaire. Voici un post sur meta à ce sujet.Mathematica, 27 octets
Mathematica avait presque une fonction intégrée pour celaEssayez-le sur Wolfram Sandbox
Usage
Explication
la source
Mathematica, 58 octets
Contribution
Sortie
la source
Perl 6 , 36 octets
Essaye-le
Étendu:
la source
APL (Dyalog) , 22 octets
Prend
l
comme argument gauche eta
argument droit.Essayez-le en ligne!
{
…}
Fonction anonyme où se⍺
trouve l'argument gauche (l
) et⍵
l'argument droit (a
).≢⍵
décompte (longueur) dea
⍺÷⍨
diviser parl
⌈
plafond (arrondi)⍺,⍨
ajouterl
s←
magasins
(pour s hape)×/
produit de cela (c.-à-d. combien d'entiers sont nécessaires)⍵↑⍨
prendre autant d'entiersa
(remplissage avec des zéros)s⍴
r forme pour formers
(lignes, colonnes)+⌿
sommes colonnairesla source
Haskell ,
5949 octetsEssayez-le en ligne!
la source
Perl 6 , 40 octets
Essayez-le en ligne!
Si vous aimez le numéro 42, vous pouvez échanger le
*
pour un∞
. Cela fera 42 octets :—).Explication :
La magie derrière le dernier "add up" est que l'opérateur est un "réduire avec zip avec +". Au fait, cela tomberait en panne si nous ne l'utilisions que sur une liste avec 1 liste à l'intérieur, mais cela ne se produit jamais si la liste d'origine n'était pas vide (en raison de l'avant-dernière ligne). Notez également que nous finissons par prendre non seulement
@a
, mais des@a * $l
articles. Heureusement, nous n'avons ajouté que des zéros qui n'affecteront pas le résultat final.la source
Coque , 9 octets
Essayez-le en ligne!
Explication
la source
Pyth , 8 octets
Essayez-le ici!
Pyth , 10 octets
Essayez-le ici!
Explication
Explication # 1
Explication # 2
la source
sM.TcEQ
[1], 3
, ce qui donnerait à la[1]
place de[1, 0, 0]
.J ,
1512 octetsEssayez-le en ligne!
Explication
la source
[:+/-@[[\]
:?05AB1E , 8 octets
Essayez-le en ligne!
la source
05AB1E , 8 octets
Essayez-le en ligne!
la source
¹
vs²
)SOGL V0.12 , 14 octets
Essayez-le ici! ou Essayez tous les cas de test. ceci est écrit comme une fonction sans nom et attend
chunk length; array
sur la pile.Explication:
la source
F
sert le code Try it Here que vous avez lié?f=a=>a+2
laf=
pièce n'est pas comptée - dans SOGLF\n
n'est pas comptée.05AB1E , 12 octets
Essayez-le en ligne!
Explication
la source
Mathematica, 43 octets
la source
Clojure , 42 octets
Essayez-le en ligne!
la source
R ,
6257 octets-5 octets grâce à user2390246
Essayez-le en ligne!
Mis à jour car il n'a plus à gérer le cas vide.
remplit
a
de zéros, construit une matrice del
lignes, calcule et renvoie les sommes des lignes.la source
Empilé , 24 octets
Essayez-le en ligne!
Explication
la source
Java (OpenJDK 8) , 64 octets
Essayez-le en ligne!
la source
Japt , 7 octets
Man, je me suis battu avec la mauvaise méthode Japt pendant trop longtemps en essayant de la faire fonctionner pour le
[1], 3
cas de test dans une quantité raisonnable d'octets!Essayez-le
Explication
Entrée implicite de tableau
U
et d'entierV
.Générez un tableau d'entiers de
0
àV-1
et passez chacun par une fonction enX
étant l'élément courant.Saisissez chaque
V
élément deU
, en commençant à l'indexX
.Réduisez ce tableau par addition.
la source
C, (GCC)
10186 octetsEssayez-le en ligne!
Usage
Notez que vous devez transmettre la longueur du ou des tableaux et un nouveau tableau dynamique sur le tas (m).
la source
PowerShell , 62 octets
Essayez-le en ligne!
Nous prenons la
$a
rray d' entrée et$l
ength. Bouclez ensuite de1
à$l
. Chaque itération, nous définissons helper$y
à un de moins que le nombre actuel (c'est parce que PowerShell 0-indexes mais le$l
ength est en 1-indexation). Ensuite, nous définissons notre$o
sortie sur0
et bouclons à nouveau sur$l
. Chaque itération interne que nous accumulons simplement dans$o
l'$a
élément rray correctement indexé . Cela exploite le fait que l'indexation après la fin du tableau renvoie$null
et0 + $null = 0
.Une fois la boucle interne terminée, nous sortons
$o
et passons au morceau suivant. Les différentes sorties sont laissées sur le pipeline et la sortie via impliciteWrite-Output
se produit à la fin du programme.la source
Perl 5 , 44 + 1 (-a) = 45 octets
Essayez-le en ligne!
Edit: correction du cas où la longueur demandée était plus petite que le tableau d'entrée
la source
Décortiquer , 10 octets
Essayez-le en ligne!
Non golfé / Explication
la source
Scala 2.12.2 , 80 octets
Elle est légèrement plus courte que la solution Java.
la source