La loi de Kirchhoff dit que lorsque vous additionnez tous les courants (positifs pour les courants allant à une jonction et négatifs pour le courant sortant d'une jonction), vous obtiendrez toujours le résultat 0.
Regardez le schéma suivant:
En utilisant la loi de Kirchhoff, vous pouvez voir que i1 + i4 - i2 - i3 = 0, donc i1 + i4 = i2 + i3.
Étant donné deux listes, une avec tous les courants entrant dans la jonction et une avec tous les courants sortant de la jonction sauf une, sort la dernière.
Testcases:
[1, 2, 3], [1, 2] = 3
[4, 5, 6], [7, 8] = 0
[5, 7, 3, 4, 5, 2], [8, 4, 5, 2, 1] = 6
La deuxième liste contient toujours un élément de moins que la première liste. La sortie ne peut pas être négative. Le plus petit programme gagne.
code-golf
array-manipulation
electrical-engineering
Soixante six
la source
la source
Réponses:
Gelée, 2 octets
Essayez-le ici!
Prend les courants entrants dans le premier argument et les courants sortants dans le second argument.
_
les soustrait par paire, en laissant l'élément unique de la liste plus longue telS
quel et résume le résultat.la source
Haskell, 14 octets
Exemple d'utilisation:
( (.sum).(-).sum ) [5,7,3,4,5,2] [8,4,5,2,1]
->6
.Additionnez chaque liste et faites la différence.
la source
CJam,
86 octetsL'entrée utilise deux tableaux de style CJam.
Exécutez tous les cas de test. (Cela lit plusieurs cas de test à la fois et inclut un cadre pour traiter chaque ligne individuellement, en rejetant le résultat attendu de l'entrée.)
Explication
.-
fonctionne de manière fiable car nous sommes garantis que la première liste est toujours plus longue que la seconde. (Sinon, les éléments étrangers de la deuxième liste seraient ajoutés au résultat, ce qui les ajouterait à la somme au lieu de les soustraire.)la source
MATL , 3
4,0octetsLes entrées sont: laisser les courants en premier, puis entrer les courants.
Essayez-le en ligne!
la source
Javascript, 36 octets
Afficher l'extrait de code
la source
05AB1E , 4 octets
Code:
Explication:
Merci à Luis Mendo de m'avoir rappelé que je dois implémenter une fonction de concaténation. Si je l'avais implémenté plus tôt, cela aurait été de 3 octets:
Version non concurrente (3 octets):
La première liste est la liste actuelle sortante, la seconde est la liste actuelle entrante. Code:
Explication:
Utilise l'encodage CP-1252.
la source
Mathematica,
1711 octetsAssez facile.
la source
Lisp commun, 40
la source
Perl 6 , 11 octets
Usage:
la source
Python 3, 24 octets
ou
Python 2, 19 octets
selon que je dois imprimer le résultat ou simplement créer une fonction qui le renvoie.
la source
ES6, 39 octets
Parce que je voulais utiliser
reduceRight
.la source
Python 2, 30 octets
la source
Pyth, 6 octets
Explication
Essayez-le ici
la source
K5, 5 octets
Différence sur (
-/
) somme sur (+/
) chacun ('
).En action:
la source
Pyth, 5 octets
Essayez-le en ligne. Suite de tests.
M
aps
um sur les deux listes d'entrée, puisF
ancienne soustraction (-
).Cela pourrait également s'écrire
-sQsE
, ce qui prend les listes sur deux lignes.la source
𝔼𝕊𝕄𝕚𝕟, 5 caractères / 7 octets
Try it here (Firefox only).
Wut.
Explication
sum(input1) - sum(input2)
la source
Common Lisp REPL, SBCL
2824 octetsécrivez ceci dans REPL:
puis écrivez des listes d'entrée comme ceci:
J'espère que c'est correct d'utiliser un tel format de liste (au lieu de par exemple
'(2 3 4)
) J'ai utilisé la réponse de coredump comme formule pour ma solution, puis j'ai obtenu son effet de calcul d'une manière différente.Explication
Soit des
e_1,...,e_n
éléments de la première liste et desf_1,...,f_{n-1}
éléments de la deuxième liste. Nous voulons évaluer l'expression(-(+ e_1 e_2 ... e_n)f_1 f_2 ...f_{n-1})
Cela signifierait soustraire les éléments de la deuxième liste de la somme des éléments de la première liste. L'expression nécessaire est construite comme suit:backqoute arrête l'évaluation
#1=
économise un peu d'écriture, de mémoire,@(read)
,@
arrête les effets de backquote (pour que (lecture) soit évalué) et retire les éléments d'une liste.(read)
demande des commentaires#1#
"charge" l'objet Lisp enregistré par#1=
#.
fait l'évaluation de la représentation imprimée d'un objet Lispla source