En physique, comme les charges électriques repoussent, et contrairement aux charges s'attirent.
L'énergie potentielle entre deux charges unitaires séparées par une distance d
est 1/d
pour des charges similaires et -1/d
pour des charges différentes. L'énergie potentielle d'un système de charges est la somme des énergies potentielles entre toutes les paires de charges.
Défi
Déterminez l'énergie potentielle d'un système de charges unitaires représenté par une chaîne.
C'est le code-golf , donc la solution la plus courte en octets l'emporte.
Contribution
Une chaîne non vide multiligne, constitué de seulement +
, -
,
et les sauts de lignes, chaque ligne d'une largeur constante. Les +
et -
représentent des frais de +1 et -1 respectivement. Par exemple, la chaîne suivante:
+ -
+
(considérant que le coin supérieur gauche est l'origine) représente un système avec des charges positives à (4,0) et (1, -1) et une charge négative à (6,0).
Alternativement, vous pouvez prendre la saisie comme une liste de lignes.
Production
Un nombre réel signé représentant l'énergie potentielle du système de charges. La sortie doit être correcte à quatre chiffres significatifs ou 10 -4 , selon le plus lâche.
Cas de test:
-
Devrait sortir 0
. Il n'y a pas de paires de charges à repousser ou à attirer, et l'espace blanc ne change rien.
+
-
Il n'y a que deux charges; ils sont à 1 unité dans le sens vertical et à 2 unités dans le sens horizontal, leur distance est donc sqrt (5). La sortie doit être -1 / sqrt (5) = -0.447213595
.
+ -
- +
Devrait donner -2.001930531
.
- -- -+ - - -+-++-+
+-- + +-- + ++-++ -
---++-+-+- -+- - +-
-- - -++-+ --+ +
- + --+ ++-+ +-
-- ++- + + -+--+
+ +++-+--+ +--+++ +
-+- +-+-+-+ -+ +--+
- +-+- + ---+
- - ++ -+- --+--
Devrait donner -22.030557890
.
---+--- ++-+++- -+ +
-+ ---+++-+- +- + +
---+-+ - ---- +-- -
- + +--+ -++- - -
--+ - --- - -+---+ -
+---+----++ - + +
-+ - ++-- ++- -+++
+----+- ++-+-+ -
++- -+ -+---+ -- -+
+-+++ ++-+-+ -+- +-
Devrait donner 26.231088767
.